本帖最后由 lidakemaki 于 2012-6-15 09:45 编辑
大家好,如题。
不知道大家有没有遇到一种情况,就是单片机做“中转站”,把接收到的数据再发出去。
当然我知道可以用扫描的方法实现。
但是今天我试验了,用中断的方法,大意是接收到一组数据后,在接收中断中直接调用2个处理数据的函数,数据处理完毕,又在接收中断里,启动了发送中断。我这样试验后,发现时不时的会死机,而且有时数据处理明显不正确(因为处理后的结果都一样了!)。
请问,确实不能这样写吗?
其实我想问的问题是:
在单片机中,接收中断里调用2个函数,处理数据,并且在接收中断没有退出的情况下,申请发送中断。这样的做法,会不会造成单片机“死机”和函数处理数据不正确(数据结果一定)(函数一定是没问题的,因为我拿出中断来执行,数据都OK)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我也说的是单片机...
同情楼主
我的逻辑应该是没有问题的。但是,时不时的会死机,不一定什么时候。
那函数在串口接收中断里被调用后,处理的数据结果变得都一样了。
是为什么呢?
同样的函数放在串口接收中断外就没有事了,这不是逻辑的问题了吧?!因为同一个函数哦。
比如函数有一句while(!TI){...}
放在外面不会影响接收中断,放在里面就有可能导致SBUF的溢出
兄弟,我真的不清楚。编译器不同,同一段程序。会造成编译后烧录芯片出现的结果不一样吗?求教!!!是因为什么造成的呢?
一周热门 更多>