1156807738 发表于 2019-12-12 13:28

DSP28035使用FIFO中断接收数据问题,

本帖最后由 1156807738 于 2019-12-13 16:27 编辑

程序没问题的,是我软件的问题,为了感谢各位热心前辈们,对我这个初学小白的指导,给各位分享一下我此次这次使用FIFO中断收发不定长数据的思路。因公司要求,代码就不挂了。
思路要点:
1.使用FIFO发送中断级别0,在发送数据时候使能中断结束及时清除标志位,响应组内中断(注意最后一次进入中断要关闭发送中断)
2.接收FIFO中断4级,在发送数据时候使能中断结束及时清除标志位,响应组内中断。为了能够接收更多数据,一帧数结束后,使用定时器定时去读取FIFO的状态未是否为空,如果延时超过3个字符的发送周期,一般可以判断收发接收(具体以设置的波特率算),如果还有数直接通过接收寄存器读取出来触发不了中断的剩余数据(即少于4字节的数)。
3,通过判断标志位的方式,确定一帧数据接收完毕,可以处理了。

这种方式可以实现发送任意字节的长度,也能一定程度上减少触发中断的频率。
供各位新手参考。谢谢大家

1156807738 发表于 2019-12-12 13:49

本帖最后由 蒋博1026 于 2020-11-15 14:34 编辑

11111

kingkits 发表于 2019-12-12 14:22

本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑

你是不是使能了发送中断?
那个中断只有在由数据需要发送时才能是能,当没有发送数据了,就得关闭。

1156807738 发表于 2019-12-12 14:28

本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑

1111

1156807738 发表于 2019-12-12 14:29

1156807738 发表于 2019-12-12 14:28
interrupt void SciaTxFifoIsr(void)//发送中断
{   
        Uint16 i;


总共发了一个9个字节的数据

1156807738 发表于 2019-12-12 15:32

本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑

问题找到了,谢谢大家不用再回复了,是自己粗心导致。

zhangmangui 发表于 2019-12-12 22:38

1156807738 发表于 2019-12-12 15:32
问题找到了,谢谢大家不用再回复了,是自己粗心导致

最好详细分享一下 解决办法

1156807738 发表于 2019-12-13 10:09

本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑

11111

yklstudent 发表于 2020-11-6 16:20

本帖最后由 蒋博1026 于 2020-11-15 14:35 编辑

FIFO深度就4,太小了。
页: [1]
查看完整版本: DSP28035使用FIFO中断接收数据问题,