找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 2030|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

C語言編程遇到了宏定義的問題,求解答,萬分感謝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:364183 發(fā)表于 2019-3-21 17:16 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
程序是初始化一塊OLED
貼出來如下

void Initial_ic(void)
{
IOCLR=0xffffffff;                     
IOSET=bBS1|bBS2|bRES|bCS|bE_RD;
IOCLR=bD_C|bR_W;
Reset_SSD1331Z();
Write_Register(0xae); //Display off
Write_Register(0x81); //set contrast for colorA
Write_Register(0x91); //145
Write_Register(0x82); //set contrast for colorB
Write_Register(0x50); //80
Write_Register(0x83); //set contrast for colorC
Write_Register(0x7d); //125
Write_Register(0x87); //master current control
Write_Register(0x06); //6
Write_Register(0x8a); //Set Second Pre-change Speed For ColorA
Write_Register(0x64); //100
Write_Register(0x8b); //Set Second Pre-change Speed For ColorB
Write_Register(0x78); //120
Write_Register(0x8c); //Set Second Pre-change Speed For ColorC
Write_Register(0x64); //100
Write_Register(0xa0); //set re=map &dataformat
Write_Register(0x74);
Write_Register(0xa1); //set display start line
Write_Register(0x00);
Write_Register(0xa2); //set display offset
Write_Register(0x00);
Write_Register(0xa4); //set display mode
Write_Register(0xa8); //set multiplex ratio
Write_Register(0x3f);
Write_Register(0xad); //set master configuration
Write_Register(0x8e);
Write_Register(0xb0); //set power save
Write_Register(0x00);
Write_Register(0xb1); //phase 1 and 2 period adjustment
Write_Register(0x31);
Write_Register(0xb3); //display clock divider / oscillator frequency
Write_Register(0xf0);
Write_Register(0xbb); //Set Pre-Change Level
Write_Register(0x3a); //58
Write_Register(0xbe); //set vcomh
Write_Register(0x3e); //62
Write_Register(0xaf); //set display on
}

void Reset_SSD1331Z(void)
{
IOCLR=bRES;
Delay_1ms(10);
IOSET=bRES;
        
}
        
void Write_Register (unsigned char out_command)
{
IOCLR=bD_C;
IOCLR=bCS;
IOCLR=bR_W;
IOCLR=0x000000ff;
IOSET= out_command;
IOSET=bR_W;
IOSET=bCS;
}

void Write_Data (unsigned char out_data)
{
IOSET=bD_C;
IOCLR=bCS;
IOCLR=bR_W;
IOCLR=0x000000ff;
IOSET=out_data;
IOSETbR_W;
IOSET=bCS;
}





編譯錯(cuò)誤是
SSD1331.c(1241): error C202: 'IOCLR': undefined identifier
SSD1331.c(1242): error C202: 'IOSET': undefined identifier
SSD1331.c(1243): error C202: 'IOCLR': undefined identifier

這幾個(gè)錯(cuò)誤說沒有定義,需要引用哪個(gè)文件能解決呢?
單片機(jī)入門小白,不恥下問,跪求大神,萬分感謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:246251 發(fā)表于 2019-3-21 18:52 | 只看該作者
這個(gè)是寄存器吧,找書冊(cè)看寄存器部分
回復(fù)

使用道具 舉報(bào)

板凳
ID:234075 發(fā)表于 2019-3-21 21:02 | 只看該作者
錯(cuò)誤提示和你描述的一樣,IOCLR和IOSET不管是什么,你既然引用了,就必須在引用之前進(jìn)行定義,至于你問需要引用哪個(gè)文件,你這個(gè)程序從哪兒來的?你到哪兒找,除了寫這個(gè)程序的人,名稱、含義、庫函數(shù)大都是根據(jù)個(gè)人喜好進(jìn)行命名的,所以你的這個(gè)問題別人解答不了。
從程序判斷,這兩個(gè)應(yīng)該定義的是引腳的IO接口
回復(fù)

使用道具 舉報(bào)

地板
ID:136106 發(fā)表于 2019-3-21 22:33 | 只看該作者
你的頭文件有沒有定義并且包含進(jìn)來?
回復(fù)

使用道具 舉報(bào)

5#
ID:365802 發(fā)表于 2019-3-22 08:24 | 只看該作者
看起來是控制的IO腳, 看看實(shí)際的電路定義一下就好.
回復(fù)

使用道具 舉報(bào)

6#
ID:18297 發(fā)表于 2019-3-22 10:21 | 只看該作者
SSD1331.c(1241): error C202: 'IOCLR': undefined identifier
SSD1331.c(1242): error C202: 'IOSET': undefined identifier
SSD1331.c(1243): error C202: 'IOCLR': undefined identifier
這個(gè)需要看你的硬件連接,IOCLR接單片機(jī)的哪個(gè)引腳,就定義哪個(gè)?
如#define IOCLR P2^2
如果程序是別人的,可能硬件連接不一樣,一定要按照自己的電路板來定義,不然編譯正確了,功能也是不對(duì)的。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表