在测试STM32串口发送完成中断的应用中,遇到了一个很奇怪的问题,在初始化完成之后直接就进入了串口中断函数的发送完成服务中断函数部分。本测试代码是在原来的基础上更改的,原来只使能了接受中断,此次仅仅是在初始化中加入了使能发送完成中断,所以问题的重点就处在了这个使能发送完成中断了。
查阅资料发现,在使能了发送完成中断之后,硬件就会紧接着发送一个空字符,那么发送完成之后不就进入了中断服务函数了。一般的解决方法是在初始化中不使能发送完成中断。仅是在发送数据的函数中使能发送完成中断,然后在中断函数中Disable此中断。我也试了下没有问题。
我想请教下,大家一般都是怎么处理发送完成中断(USART_IT_TXE或USART_IT_TC)的呢?
有篇介绍STM32串口中断的文章写的不错,来着分享下:
http://hi.baidu.com/kiraversace/item/82f0f7f4f2692e36e2e3bdef