TI中文支持网
TI专业的中文技术问题搜集分享网站

cc3200 uart接收

Ti大神,你们好

请教一个问题,在uart_dma的demo中,注册的FIFO触发级别为1/8, 当UART接收到8 字节字符时触发一次中断,我做了一个实验,如果输入6个字符,他是无法进行中断的,这6个字符继续保留在FIFO中,等下一次数据到来合并传输。

这样应该会产生一个问题,当我一个报文为非8的整数倍时,应该有小于8个字节的数据留在FIFO里面, 这就照成了数据丢失。

请问有什么方式能够解决该问题的吗 ??

2、如果我在中断注册函数中不对中断进行清除,中断会一直进行, 这个貌似也存在问题吧 ??

请帮忙解答下,谢谢

Jest Top:

菜鸟胡乱说说:      

      FIFO触发级别为1/8时,接收到两个字节就会产生中断,2/8是四字节,如果设置1/8  输入6个字符在FIFO里面应该可以接收完整的,只要一次发送超过两个字符就能产生中断

      中断处理中使用UARTCharsAvail判断FIFO中是否有数据,有数据就接收,接收完然清除中断

      这段时间内只要保证接收时FIFO有数据 UARTCharsAvail为True 即可,如果UARTCharsAvail为False 肯定接收完了,清除中断下次数据到达超过两字节又会产生中断。

      但是启用FIFO 并设置Level为1/8 两字节产生中断   所以要一次输入两字节才能产生中断,如果一次(相对长时间间隔发送)只输入一字节那只有等到下个字节到FIFO才能产生中断再接收了,不过一般真正应用很少一次只发一字节吧。

第二个情况没理解,难道是启用中断后就一直产生中断?,中断源是什么呢,启用之前先清除还会不会呢。。

赞(0)
未经允许不得转载:TI中文支持网 » cc3200 uart接收
分享到: 更多 (0)