读书人

新手提问关于宏定义的在有关问题在

发布时间: 2014-01-17 00:06:00 作者: rapoo

新手提问,关于宏定义的在问题,在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)) 


http://blog.csdn.net/gaojinshan/article/details/11479929

读书人网 >单片机

热点推荐