程序停止在while (!(IFG1 & UTXIFG0));

2019-03-24 10:50发布

在运行程序的时候发现程序一直停留在发送子程序里的这句话不动了,一直运行和终止,都是停留在这个地方,这是什么原因?
停止.jpg
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
面纱如雾
1楼-- · 2019-03-24 18:18
当我发送数据的时候,IFG1置1,那它什么时候恢复0的呢?是芯片自动的吗?
面纱如雾
2楼-- · 2019-03-24 23:15
 精彩回答 2  元偷偷看……
面纱如雾
3楼-- · 2019-03-24 23:20
ifg.jpg
查看了一下,当发送A的时候,发现IFG1的最高位是1,当发送完毕后,变为了0,那么和UTXIFG0第8位与的时候会变成0,取反后变1在那等待。
也就是说当发送了一个数据之后一直处在忙碌状态而不能进入空闲紧接着发送第二个数据,问题应该出现在硬件上面。
各位有经验的大神分析下硬件可能哪里出问题了。
lonerzf
4楼-- · 2019-03-24 23:59
没遇到过这个问题。看程序似乎没什么问题。不过芯片出问题的概率更应该小啊。楼主要不试试把发送函数分成两个写
sendByte 和sendString 在sendString里调用sengByte。
lonerzf
5楼-- · 2019-03-25 02:20
 精彩回答 2  元偷偷看……
面纱如雾
6楼-- · 2019-03-25 07:43
lonerzf 发表于 2014-10-12 20:33
没遇到过这个问题。看程序似乎没什么问题。不过芯片出问题的概率更应该小啊。楼主要不试试把发送函数分成两 ...

我也觉得程序应该没有什么问题,因为在我之前做的板子上是可以流畅跑的,观测也没有这个问题。
这次做的新板子就出了这个问题,网上说可能晶振坏了,分析一下也有道理,波特率有问题可能导致数据传输有问题,但是换了晶振后还是这样,心都寒了。
要是找不出硬件问题就试试你的这个软件问题了,谢谢你!

一周热门 更多>

相关问题

    相关文章