Uart接收问题咨询
开发用的HT66F0185, 在使用串口中断的时候,Uart有2ByteFifo, 遇到问题是,Uart中断能进入,只能读出rxr里1个byte的数据, 也就是说发10个字节数据,进5次接收中断,只能读第一个字节的数据。 请问一下,哪里使用有问题,有知道的指点一下是发10个字节只能进5次中断?如果这样的话,说明有其他中断占用时间,导致串口中断不能及时响应。可以降低波特路、或者改善其他中断占用时间。
其次2byte fifo可以在一次中断里读出。方式
if(_rxif)
{
buff=_txr_rxr;
if(_rxif)
{
buff=_txr_rxr;
}
}
admin 发表于 2021-11-4 09:52
是发10个字节只能进5次中断?如果这样的话,说明有其他中断占用时间,导致串口中断不能及时响应。可以降低 ...
感谢 ,请问你这个是验证过的吗? 我试过好像不行,第二个if ,程序进不去。 连续读取两次读rxr的程序是在中断里处理的,应该没没什么资源占用,我测试的时候已经把一些功能关闭了,在主函数只留了LED显示,在中断里执行到不同的位置,对应led显示数字。中断执行以后,我只有第一个if执行了 ,感觉像是第一个执行完以后 rxif被清零了,所以第二个if进不去。 wangrui33422 发表于 2021-11-4 14:06
感谢 ,请问你这个是验证过的吗? 我试过好像不行,第二个if ,程序进不去。 连续读取两次读rxr的程序是 ...
当fifo没有数据了rxif会自动清0,如果第一个执行完了就清0了,说明接收中断已经及时处理了。
你仔细查看自己代码,是否其他问题。 admin 发表于 2021-11-5 13:57
当fifo没有数据了rxif会自动清0,如果第一个执行完了就清0了,说明接收中断已经及时处理了。
你仔细查看 ...
好的,谢谢
页:
[1]