对于变长的数据发送,去判断最后一次填充FIFO是比较麻烦的,因为在发送大数据包时(一次几百个字节),在进发送FIFO之前,一般都是先进自己定义的发送buffer(通常是最长数据包长度的几倍)的。如果使用1200bps,最后一包数据是15个字节,难到要等100ms吗?
我现在的485发送完毕转接收,就是在我的1ms定时中断里,使用UARTBusy()查询一次,所以发送完转接收最坏就是1ms的延时(当然为了缩短时间,可以使用10us的中断,但这样CPU的定时器中断开销就太大了)。所以我的系统对于485通信的响应时间就是1ms,不可能再短了(对于一般9600bps的485通信来说最够了)。
不得不说有FIFO确实是个好东西,而且是越大越好,用了32位机不要老是停留在8位机的单字节发送的思路上。但lm3s没有发空中断,虽然可以通过别的方式解决,但是我觉得确实是不足!!
不足就是不足,没什么必要掩饰,只要找出解决问题的办法就好。如果LM3S能有发空中断,确实就更好了。
说实话,用LM3S就是看重他的以太网继承PHY了,如果不是这点,LM3S和STM32是无法比的。
以上只是个人之见! |