標(biāo)題:
求助!keil寫單片機(jī)例程都報(bào)錯(cuò)
[打印本頁(yè)]
作者:
santo
時(shí)間:
2018-8-8 17:39
標(biāo)題:
求助!keil寫單片機(jī)例程都報(bào)錯(cuò)
程序是單片機(jī)資料里的例程 spi測(cè)試的,本來(lái)自己參考寫的時(shí)候翻譯在SPSTAT=SPIF|WCOL;處就會(huì)報(bào)錯(cuò)141,于是直接重寫了一遍例程,還是報(bào)錯(cuò)。
只要是出現(xiàn)了A|B的地方就報(bào)錯(cuò),求賜教什么原因呀!萬(wàn)分感謝!
報(bào)錯(cuò)內(nèi)容:
compiling 1.c...
1.c(43): error C141: syntax error near '|'
1.c(54): error C141: syntax error near '|'
1.c(80): error C141: syntax error near '|'
1.c - 3 Error(s), 0 Warning(s).
程序如下 報(bào)錯(cuò)的是標(biāo)紅處
#include "reg51.h"
#define FOSC 1843200L
#define BAUD (256-FOSC/32/115200)
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned long DWORD;
sfr AUXR=0X8e;
sfr SPSTAT=0xcd;
#define SPIF 0x80;
#define WCOL 0x40;
sfr SPCTL=0xce;
#define SSIG 0x80;
#define SPEN 0x40;
#define DORD 0x20;
#define MSTR 0x10;
#define CPOL 0x08;
#define CPHA 0x04;
#define SPDHH 0X00;
#define SPDH 0x01;
#define SPDL 0x02;
#define SPDLL 0x03;
sfr SPDAT=0xcf;
sbit SPISS=P3^4;
sbit sss=P3^3;
sfr IE2=0xAF;
#define ESPI 0x02
void InitUart();
void InitSPI();
void SendUart(BYTE dat);
BYTE RecvUart();
bit MSSEL;
//////////////////////////
void main()
{
InitUart();
InitSPI();
IE2|=ESPI;
EA=1;
while(1)
{
if( RI)
{
SPCTL=SPEN|MSTR;
MSSEL=1;
ACC=RecvUart();
SPISS=0;
SPDAT=ACC;
}
}
}
/////////////////////
void spi_isr() interrupt 9 using 1
{
SPSTAT=SPIF|WCOL;
if(MSSEL)
{
SPCTL=SPEN;
MSSEL=0;
SPISS=1;
SendUart(SPDAT);
}
else
{
SPDAT=SPDAT;
}
}
/////////////////////////
void InitUart()
{
SCON=0x5a;
TMOD=0x20;
AUXR=0x40;
TH1=TL1=BAUD;
TR1=1;
}
////////////////////////////////
void InitSPI()
{
SPDAT=0;
SPSTAT=SPIF|WCOL;
SPCTL=SPEN;
}
//////////////////////////////////
void SendUart(BYTE dat)
{
while(!TI);
TI=0;
SBUF=dat;
}
/////////////////////////////////
BYTE RecvUart()
{
while(!RI);
RI=0;
return SBUF;
}
再次感謝!
作者:
wulin
時(shí)間:
2018-8-8 18:08
#define SSIG 0x80;........宏定義的分號(hào)多余,全部去掉就可以了。
作者:
devcang
時(shí)間:
2018-8-8 18:13
sfr類型,,,換別的寫法,如使用if判斷、再賦1值或0值
作者:
devcang
時(shí)間:
2018-8-8 18:18
更正一下,,,錯(cuò)誤在#define的用法上,,,
下邊正確的
#define SPIF 0x80
#define WCOL 0x40
sfr SPCTL=0xce;
#define SSIG 0x80
#define SPEN 0x40
#define DORD 0x20
#define MSTR 0x10
#define CPOL 0x08
#define CPHA 0x04
#define SPDHH 0X00
#define SPDH 0x01
#define SPDL 0x02
#define SPDLL 0x03
作者:
santo
時(shí)間:
2018-8-8 18:30
devcang 發(fā)表于 2018-8-8 18:18
更正一下,,,錯(cuò)誤在#define的用法上,,,
下邊正確的
ok啦 謝謝謝謝!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1