STM32F103C8T6学习笔记之USART中断
2015.10.12 晚
今天一天都在搞这个STM32的USART1中断接收问题,本以为很容易,当然确实不难,但是上网看了一下还是有很多人遇到串口中断问题的。
在这写一下我遇到的问题和解决方法!
我通过串口下载器下载程序到STM32的芯片内,写的是一个简单的串口测试程序,就和网上大部分源程序一样,就是通过串口USART1中断方式接收数据然后把收到的数据通过串口发回来。
在PB0引脚连接一个LED,进入USART1中断函数时将引脚电平反相改变LED的亮灭状态。
遇到的问题是这样的:发送数据的功能完美实现,也可以通过查询的方式接收数据,但是不能通过中断的方式接收数据,因为根本进不了中断。今天一整天我都纠结在这个问题上,也上网查了各种各样的程序,看了别人遇到的各种问题和解决方法,但都没有什么用。
最后我查看了一下V3.5官方函数库里的示例程序,参考着简化了一下,最后终于成功了。
不过我并不是因为官方的程序才成功的,我是因为使用了官方程序才发现了问题。问题就是我在运行程序时忘了插上BT0的跳线帽!>_<。
因为网上的程序都很简单,一些参考书上的程序也都是一些简单的测试程序,所以我发现不接BT0跳线帽的时候,可以通过串口接收到单片机发过来的数据,我就没有考虑那个跳线帽的问题,以为是程序初始化错误,或者什么时钟,中断之类的配置错误。而官方的程序可能比较规范,它用的是队列收发数据,设置了接收缓冲区和发送缓冲区,还有两个串口的数据校验,这个时候如果不接上BT0的跳线帽ÿ