新手提问,关于宏定义的在问题,在Keli-MDK中
我在main函数前面定义了如下:
#define BITSAND(Addr,BitNum) *((volatile unsigned long *) ((Addr&0xf0000000)+0x2000000 + (Addr&0xfffffff)<<5 + BitNum*<<2)
#define PAOUT(N) BITSAND(GPIOA_ODR_A,N)
#define PAIN(N) BITSAND(GPIOA_IDR_A,N)
在main函数中,有这样的语句
if ((GPIOA->IDR & 0x1000)== 0x1000)
PAOUT(4)=1;
else PAOUT(4)=0;
它build 之后总是提示expected expression.并且PAOUT下游红色波浪线
请问一下这个问题该怎么解决???
[解决办法]
BitNum*<<2可能是*多打了。
[解决办法]
BitNum*<<2 写错了啊,应该是 m3 的bitband 吧
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))