標(biāo)題:
error C141: syntax error near '}' keil4報錯 簡易超市收銀機 單片機程序
[打印本頁]
作者:
CL123da
時間:
2017-5-25 01:01
標(biāo)題:
error C141: syntax error near '}' keil4報錯 簡易超市收銀機 單片機程序
LEIL4報錯:IIC.H(107): error C141: syntax error near '}' (說的是這個 bitcounter--})
請問為什么?
#include<intrins.h>
#define uchar unsigned char
#define sda P3_6 //定義SDA口
#define scl P3_7 //定義SCL口
//-----------------------------------------------------
void delay(uchar a) //24C64和其他一些地方需要的延時函
{
uchar b,c;
for(b=0;b<a;b++)
for(c=0;c<225;c++);
}
//-----------------------------------------------------
void start(void) //開始總線的活動
{
sda=1;
scl=1;
_nop_();_nop_(); _nop_(); _nop_();
sda=0;
_nop_();_nop_();_nop_(); _nop_();
}
//-----------------------------------------------------
void stop(void) //停止總線活動,器件進入低功耗狀態(tài)
{
sda=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
sda=1;
_nop_();_nop_();_nop_();_nop_();
}
//-----------------------------------------------------
void ack(void) //應(yīng)答信號
{
sda=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
scl=0;
//允許從器件改變當(dāng)前SDA的狀態(tài),以便于下一次的讀入
}
//-----------------------------------------------------
void noack(void) //無應(yīng)答信號
{
sda=1;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
scl=0;
}
//-----------------------------------------------------
void checkack(void)
{
_nop_();_nop_();_nop_();_nop_();
scl=1;
if(sda)
{
scl=0;
}
else
{
_nop_();_nop_();_nop_();_nop_();
scl=0;
}
}
//-----------------------------------------------------
void send(uchar kk) //寫入一個字節(jié)
{
uchar bitcounter=8;
uchar temp;
do
{
temp=kk;
scl=0;
_nop_();_nop_();_nop_();_nop_();
if((temp&0x80)==0x80) //數(shù)據(jù)的發(fā)送為高位在前,低位在后
sda=1;
else
sda=0;
scl=1;
temp=kk<<1;
kk=temp;
bitcounter--;
}
while(bitcounter);
scl=0;
}
uchar read(void) //讀出一個字節(jié)
{
uchar temp=0;
uchar temp1=0;
uchar bitcounter=8;
sda=1;
do
{
scl=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
if(sda)
temp=temp|0x01; //數(shù)據(jù)的讀入為高位在前,低位在后
else
temp=temp&0xfe;
if(bitcounter-1)
{ temp1=temp<<1;
temp=temp1;
}
bitcounter--}
while(bitcounter); //讀入8位
return temp;
}
//發(fā)送命令和操作對象給24c64
void writenbyte(uchar *adata,uchar address)
{
uchar bb; //定義'寫字節(jié)數(shù)'變量bb
for(bb=0;bb<16;bb++) //寫入16個字節(jié)
{ start(); //器件地址
send(0xa0);
checkack();
send(0x00); //從器件內(nèi)部高地址
checkack();
send(address+bb); //從器件內(nèi)部地址低位
checkack();
send(adata[bb]);
checkack();
stop();
delay(40);
}
}
void readnbyte(uchar *adata,uchar address)
{
uchar i; //定義'讀字節(jié)數(shù)'變量i
for(i=0;i<16;i++)
{
start();
send(0xa0);
ack();
send(0x00); //從器件內(nèi)部高地址
ack();
send(address+i); //從器件內(nèi)部地址低位
ack();
start();
send(0xa1);
ack();
adata[i]=read(); //讀取操作數(shù)
scl=0;
noack();
stop();
}
}
/********************************結(jié)束************************************/
復(fù)制代碼
作者:
不倒翁.WZT
時間:
2017-5-26 17:20
標(biāo)題:
RE: error C141: syntax error near '}' keil4報錯 簡易超市收銀機 單片機程序
意思是,第110行“}”號附近有錯誤,具體是語句bitcounter--缺少“;”號。加上‘:’號,該錯誤即消除。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1