迄今用过M451、M467、M487系列的MCU,发现有个问题,所有的UART的发送中断,都只有FIFO空中断(THREINT),实际中测试中发现,发送FIFO中断发生后,FIFO的最后一个字节只是从FIFO到了移位寄存器,但移位寄存器的数据并没有完整发送的物理线上,这在用RS485的时候就有点尴尬,因为RS485要切换发送引脚。
用STM32系列做个类比,STM32发送有两个中断,TXE和TC,前者表示BUFF转移到了移位寄存器,后者TC表示移位寄存器为空(也就是真正的、彻底的发送完成),所以可以在TC中断完成后切换RS485的引脚,新唐少了一个类似的TC中断,所以有点麻烦。
所以请问各位同行,你们在遇到使用中断的模式下切换RS485的时候,都是怎么处理的? |