打印

ADS1.2 UART,SPI,I2C中断方式发送数据 退出while(NUM)问题

[复制链接]
1628|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我爱工程|  楼主 | 2011-10-26 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用I2C,SPI,UART的中断发送数据,并定义一个全局变量NUM,在中断中每发一个数据,NUM就减一,我在发送函数中,如uart_wnbyte(){
---------------数据在中断中发送

while(NUM);//等待NUM=0;//////////但始终都退不出while,我检查了NUM的值,它确实也等于0,理论上应该 退出去的呀?请问各位有没有遇到过类似的问题
但是如果用while(NUM){---有一些无关紧要的句子,如延时}就能退出去}


我的问题主要是退出while(NUM);至于UART是不是应该用中断发送,我在这里不讨论。我知道UART一般用等待方式发送,但中断也是可以的,我手头也有程序。

但是上面的问题也出现在SPI,I2C中断发送数据中

我用的ADS1.2 ,LPC2131,周立功的启动模板,我在PROTEUS和硬件中都试过了,但没有用其它编译器

相关帖子

沙发
zhangkef0904| | 2011-10-26 15:07 | 只看该作者
在定义NUM时加上volatile试试。

使用特权

评论回复
板凳
我爱工程|  楼主 | 2011-10-26 20:59 | 只看该作者
很感谢2楼

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

9

帖子

1

粉丝