今天分享一个很有趣的现象,就是最近使用到我们国产品牌复旦微的一款32位单片机芯片(FM33LG0XX),我发现这个芯片使用串口发送中断时候必须先发送一个字节先,才能把相应的发送标志位标志上来,跟我们以前经常用的STM32芯片好像有点不一样是吧。
像STM32和GD32只要使能了相应的中断和使用了串口发送接口函数就可以将你想发的数据发送出去。
但是这次使用复旦微的这款FM33LG0XX系列的芯片,其想要使用串口发送中断,在完成了相应中断使能的发送中断使能后,要想将串口的发送TXBE标志位置位必须先发送一个字节,也就是调用发送接口函数,将一个字节先塞入TX_BUF(串口发送缓冲区),由硬件来置位。看了一下数据手册,的确是先将发送的一个字节数据移入发送缓冲区,再由硬件置位发送标志位(TXBE),也就是说你想发送什么,你就必须先发送一个字节才能继续发送,可能跟因为这个串口发送使用的是缓冲区为空中断有关系。
据了解,想灵动微和复旦微的部分芯片使用串口发送中断都是需要这样子来发送。如果有其他小伙伴也遇到这种相似的问题,希望本篇可以帮助到你。
好了,今天的分享就到这里~
本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞和收藏,谢谢~