DSP28035使用FIFO中断接收数据问题,
本帖最后由 1156807738 于 2019-12-13 16:27 编辑程序没问题的,是我软件的问题,为了感谢各位热心前辈们,对我这个初学小白的指导,给各位分享一下我此次这次使用FIFO中断收发不定长数据的思路。因公司要求,代码就不挂了。
思路要点:
1.使用FIFO发送中断级别0,在发送数据时候使能中断结束及时清除标志位,响应组内中断(注意最后一次进入中断要关闭发送中断)
2.接收FIFO中断4级,在发送数据时候使能中断结束及时清除标志位,响应组内中断。为了能够接收更多数据,一帧数结束后,使用定时器定时去读取FIFO的状态未是否为空,如果延时超过3个字符的发送周期,一般可以判断收发接收(具体以设置的波特率算),如果还有数直接通过接收寄存器读取出来触发不了中断的剩余数据(即少于4字节的数)。
3,通过判断标志位的方式,确定一帧数据接收完毕,可以处理了。
这种方式可以实现发送任意字节的长度,也能一定程度上减少触发中断的频率。
供各位新手参考。谢谢大家
本帖最后由 蒋博1026 于 2020-11-15 14:34 编辑
11111 本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑
你是不是使能了发送中断?
那个中断只有在由数据需要发送时才能是能,当没有发送数据了,就得关闭。 本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑
1111 1156807738 发表于 2019-12-12 14:28
interrupt void SciaTxFifoIsr(void)//发送中断
{
Uint16 i;
总共发了一个9个字节的数据 本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑
问题找到了,谢谢大家不用再回复了,是自己粗心导致。 1156807738 发表于 2019-12-12 15:32
问题找到了,谢谢大家不用再回复了,是自己粗心导致
最好详细分享一下 解决办法 本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑
11111 本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑
FIFO深度就4,太小了。
页:
[1]