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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3772|回復: 10
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主

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

這種錯誤該怎么改,有誰會呀!感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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
回復

使用道具 舉報

5#
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;
回復

使用道具 舉報

6#
ID:624769 發表于 2021-12-1 17:33 | 只看該作者
AT89 是不能設置端口模式的。

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

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

使用道具 舉報

7#
ID:941608 發表于 2021-12-1 18:33 | 只看該作者
wulin 發表于 2021-12-1 17:13
AT89x51.h頭文件中沒有相關寄存器,需要添加。
sfr P0M0        =   0x94;   //0000,0000 端口0模式寄存 ...

謝謝,終于弄好了
回復

使用道具 舉報

8#
ID:941608 發表于 2021-12-1 18:34 | 只看該作者
angmall 發表于 2021-12-1 17:16
前面加這個

sfr     P0M0        =   0x94;

謝謝,可以運行了
回復

使用道具 舉報

9#
ID:57657 發表于 2021-12-1 20:03 | 只看該作者
像你這樣的 PxMx 寄存器 都是STC后來加進去的,51內核是沒有這些的。
回復

使用道具 舉報

10#
ID:624769 發表于 2021-12-1 20:09 | 只看該作者
sfr     P0M0        =   0x80;
也能不報錯,編譯成功,

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

使用道具 舉報

11#
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看av免费 | 九九热精品视频 | 国产精品免费在线 | 成人h动漫精品一区二区器材 | 欧美在线天堂 | 日本一区二区高清不卡 | 一级欧美黄色片 | 精品视频在线免费观看 | 日本天天操 | 一区在线视频 | 亚洲+变态+欧美+另类+精品 | 亚洲天堂av一区 | 999精品在线观看 | 男女羞羞视频网站 | 天天玩天天操天天干 | 国产色婷婷精品综合在线手机播放 | 大伊人久久| 国产精品久久国产精品 | 美女视频黄的 | 久久99国产精一区二区三区 | 一区二区三区精品 | 狠狠色狠狠色综合日日92 | 综合久久av | 国产成人在线视频免费观看 | 久久久久久99| 亚洲精品中文字幕中文字幕 | 久久精品网 | 欧美一区二区三区在线视频 | 国产精品久久久久久亚洲调教 | 91亚洲精选 | 国产精品不卡一区二区三区 | 欧美中文字幕 | 日本超碰| 成人av播放 | 一区二区三区在线 | 久久蜜桃av一区二区天堂 | 久久精品视频在线观看 | 久久久123| 日韩aⅴ在线观看 | 国产精品久久久久久久粉嫩 | 一区二区在线不卡 |