新手提问,关于宏定义的在问题,在Keli-MDK中

martin5894422 2014-01-08 10:10:01
我在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下游红色波浪线

请问一下这个问题该怎么解决???
...全文
292 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxianbin 2014-01-13
  • 打赏
  • 举报
回复
BitNum*<<2 写错了啊,应该是 m3 的bitband 吧
 #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) 
http://blog.csdn.net/gaojinshan/article/details/11479929
martin5894422 2014-01-12
  • 打赏
  • 举报
回复
自己顶上去,看看有没有专家
dceacho 2014-01-09
  • 打赏
  • 举报
回复
我也不知道 BitNum*<<2这个是什么运算?
Mr. Code 2014-01-09
  • 打赏
  • 举报
回复
BitNum*<<2可能是*多打了。
martin5894422 2014-01-08
  • 打赏
  • 举报
回复

27,382

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧