久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4084|回復: 10
收起左側

keil錯誤gpio.h(3): error C202: 'P0M1': undefined identifier

[復制鏈接]
ID:941608 發表于 2021-12-1 16:21 | 顯示全部樓層 |閱讀模式
1.png
gpio()
{
P0M1=0;P0M0=0;P1M1=0;P1M0=0;
P2M1=0;P2M0=0;P3M1=0;P3M0=0;
P4M1=0;P4M0=0;P5M1=0;P5M0=0;
}

gpio.h(3): error C202: 'P0M1': undefined identifier
gpio.h(3): error C202: 'P0M0': undefined identifier
gpio.h(3): error C202: 'P1M1': undefined identifier
gpio.h(3): error C202: 'P1M0': undefined identifier
gpio.h(4): error C202: 'P2M1': undefined identifier
gpio.h(4): error C202: 'P2M0': undefined identifier

這種錯誤該怎么改,有誰會呀!!感謝!
回復

使用道具 舉報

ID:941608 發表于 2021-12-1 16:22 | 顯示全部樓層
代碼是這樣的:
#include<AT89x51.h>
#include<intrins.h>
#include"gpio.h"
#define uint unsigned int
#define uchar unsigned char
#define x P1   
#define y P3
#define z P2
void main(void)
{
gpio();
x=0xff;
y=0xff;
while(1)
{
   z=~(x^y);
}
}
回復

使用道具 舉報

ID:883031 發表于 2021-12-1 16:58 | 顯示全部樓層
GPIO的頭文件貼出來
回復

使用道具 舉報

ID:213173 發表于 2021-12-1 17:13 | 顯示全部樓層
111110.. 發表于 2021-12-1 16:22
代碼是這樣的:
#include
#include

AT89x51.h頭文件中沒有相關寄存器,需要添加。
sfr P0M0        =   0x94;   //0000,0000 端口0模式寄存器0
sfr P0M1        =   0x93;   //0000,0000 端口0模式寄存器1
sfr P1M0        =   0x92;   //0000,0000 端口1模式寄存器0
sfr P1M1        =   0x91;   //0000,0000 端口1模式寄存器1
sfr P2M0        =   0x96;   //0000,0000 端口2模式寄存器0
sfr P2M1        =   0x95;   //0000,0000 端口2模式寄存器1
sfr P3M0        =   0xB2;   //0000,0000 端口3模式寄存器0
sfr P3M1        =   0xB1;   //0000,0000 端口3模式寄存器1
sfr P4M0        =   0xB4;   //0000,0000 端口4模式寄存器0
sfr P4M1        =   0xB3;   //0000,0000 端口4模式寄存器1
sfr P5M0        =   0xCA;   //0000,0000 端口5模式寄存器0
sfr P5M1        =   0xC9;   //0000,0000 端口5模式寄存器1
sfr P6M0        =   0xCC;   //0000,0000 端口6模式寄存器0
sfr P6M1        =   0xCB;   //0000,0000 端口6模式寄存器1
sfr P7M0        =   0xE2;   //0000,0000 端口7模式寄存器0
sfr P7M1        =   0xE1;   //0000,0000 端口7模式寄存器1
回復

使用道具 舉報

ID:155507 發表于 2021-12-1 17:16 | 顯示全部樓層
前面加這個

sfr     P0M0        =   0x94;
sfr     P0M1        =   0x93;
sfr     P1M0        =   0x92;
sfr     P1M1        =   0x91;
sfr     P2M0        =   0x96;
sfr     P2M1        =   0x95;
sfr     P3M0        =   0xb2;
sfr     P3M1        =   0xb1;
回復

使用道具 舉報

ID:624769 發表于 2021-12-1 17:33 | 顯示全部樓層
AT89 是不能設置端口模式的。

即便添加了 SFR 也是不能正常工作的。

你最好先確認你單片機是否支持 端口模式轉換,再確認是否使用了匹配的頭文件。
最后,真要自己添加端口模式頭文件了,再按照手冊標注的寄存器地址添加。不要隨便添加。每個公司的單片機寄存器定義都是不一樣的。
回復

使用道具 舉報

ID:941608 發表于 2021-12-1 18:33 | 顯示全部樓層
wulin 發表于 2021-12-1 17:13
AT89x51.h頭文件中沒有相關寄存器,需要添加。
sfr P0M0        =   0x94;   //0000,0000 端口0模式寄存 ...

謝謝,終于弄好了
回復

使用道具 舉報

ID:941608 發表于 2021-12-1 18:34 | 顯示全部樓層
angmall 發表于 2021-12-1 17:16
前面加這個

sfr     P0M0        =   0x94;

謝謝,可以運行了
回復

使用道具 舉報

ID:57657 發表于 2021-12-1 20:03 | 顯示全部樓層
像你這樣的 PxMx 寄存器 都是STC后來加進去的,51內核是沒有這些的。
回復

使用道具 舉報

ID:624769 發表于 2021-12-1 20:09 | 顯示全部樓層
sfr     P0M0        =   0x80;
也能不報錯,編譯成功,

問題是這樣真的解決問題么? 擁有P0M0的不是只有STC一家,寄存器地址不是隨便填一個就OK的。
回復

使用道具 舉報

ID:57657 發表于 2021-12-1 20:27 | 顯示全部樓層
188610329 發表于 2021-12-1 20:09
sfr     P0M0        =   0x80;
也能不報錯,編譯成功,

不要直接 sfr 直接用STC的頭文件,不同系列型號的地址都可能不一樣。
STC8又出現了控制IO口的 PxPU、PxNCS 寄存器,很多人都沒聽說過。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99免费看 | 日韩免费av网站 | 欧美精品一区在线发布 | 国产高清精品一区二区三区 | 天天操天天干天天爽 | 亚洲一区二区在线视频 | 亚洲毛片在线观看 | 精品一区二区视频 | 久久久久免费精品国产小说色大师 | 国产美女精品视频免费观看 | 国产精品电影网 | 久久这里只有精品首页 | 99精品视频免费观看 | 91人人澡人人爽 | 国产精品不卡视频 | 日韩一区二区在线播放 | 久久精品亚洲精品国产欧美 | 久久久91精品国产一区二区三区 | 色噜噜狠狠色综合中国 | 在线观看 亚洲 | 91精品国产综合久久久久 | 欧美国产一区二区 | 国产一区 在线视频 | 成人激情视频在线观看 | 欧美区日韩区 | 久久一二三区 | 成人高清视频在线观看 | 国产久 | 天天综合天天 | 国产精品久久九九 | 亚洲一区久久久 | 亚洲视频免费观看 | 91福利在线观看视频 | h网站在线观看 | 在线一区 | 国产一级在线 | 97久久国产| 五月花丁香婷婷 | 亚洲一级毛片 | 青青草社区| 99久久久久|