OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9611|回复: 4

请教一下大家,预编译指令在中断中使用是不是有什么需要特别注意的?

[复制链接]

6

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2011-2-12
在线时间
36 小时
发表于 2011-10-9 21:10:27 | 显示全部楼层 |阅读模式

原子你好,我在修改串口代码的时候,在串口接收中断中使用了预编译指令,中断接收就不正常了,不能返回我发送的数据到调试软件中,好像是进入了死循环。代码是这样的

void USART1_IRQHandler(void)

{

  #ifdef   use_lib

    //这里是程序代码1

  #endif

 #ifdef   no_lib

  //这是代码2

#endif

}

好像上面这样就不会接收数据了(在这之前我已经定义了use_lib或no_lib),如果把上面一段代码(代码1)和预编译指令注释掉就正常了,不是是怎么回事,是我的指令用的不对吗?

麻烦你指点一下,或者有什么资料可以学习的,谢谢先!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-10-9 21:17:03 | 显示全部楼层
回复【楼主位】lf8013:
---------------------------------
#ifdef的作用,你要明白.
ifdef就是如果定义,你既然两个都定义了,代码1和代码2应该会一起执行.
你的意思,应该定义一个互斥的.
比如

#if no_lib==1
#else
#endif
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2011-2-12
在线时间
36 小时
 楼主| 发表于 2011-10-9 21:26:19 | 显示全部楼层
我只定了一个啊,(在这之前我已经定义了use_lib或no_lib),不是两个都定义的,定义use_lib,另外一个注释掉,要不我试一下,定义一个互斥的.
回复 支持 反对

使用道具 举报

6

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2011-2-12
在线时间
36 小时
 楼主| 发表于 2011-10-9 21:35:19 | 显示全部楼层
重新修改了一下,出现了一个重定义错误,然后就发现问题在哪里了,晕,定义use_lib和no_lib的语句放错地方了
回复 支持 反对

使用道具 举报

6

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2011-2-12
在线时间
36 小时
 楼主| 发表于 2011-10-9 21:36:43 | 显示全部楼层
谢谢原子,你的新开发板快点上市啊,我都盼了很久了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 07:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表