我在KEI环境下
#include<reg52.h>
typedef unsigned char u8;
#define SPI_MASTER 1
sfr SPCTL = 0xCE;
#define MSTR = 0x10;
#define SSIG = 0x80;
#define AssignBit(type ,flag , which_bit, val) ((((type)which_bit)&((type)val)) | ((flag)&(~((type)which_bit))))
#define SPI_SetMode(mode) { AssignBit(u8, SPCTL, (u8)(MSTR | SSIG), ((mode<<4) | (mode<<7)) ); }
void SPI_Init(void)
{
SPI_SetMode(SPI_MASTER);
}
也就是我定义了一个带参宏AssignBit,然后又根据AssignBit定义了一个带参宏 SPI_SetMode,然后使用SPI_SetMode进行初始化,可是编译器老是报错
MAIN.C(40): error C141: syntax error near '='
MAIN.C(40): error C141: syntax error near ';'
MAIN.C(40): error C141: syntax error near '|'
MAIN.C(40): error C141: syntax error near ')'
MAIN.C(40): error C190: '&': not an lvalue
MAIN.C(40): error C141: syntax error near ')'
MAIN.C(40): error C141: syntax error near '='
MAIN.C(40): error C141: syntax error near ';'
MAIN.C(40): error C141: syntax error near '|'
MAIN.C(40): error C141: syntax error near ')'
希望高手能指点一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>