使用的是STM32f103ZET6.
1、把文件main.c和usart.c中的所有usart1换成usart2
2、查看手册得知USART2的引脚是Tx->PA2,Rx->PA3,改变usart.c文件GPIO设置。
3、 Error: L6218E: Undefined symbol UART_INIT (referred from main.o).
Not enough information to list image symbols.
解决办法:在usart.h文件里#define EN_USART1_RX 改为#define EN_USART2_RX ,因为使用到了串口2的中断接收,所以必须在usart.h里面定义EN_USART2_RX,这样才可以配置中断使能,以及开启NVIC中断。
4、usart1和usart2时钟不一样,usart1挂载在APB2上,usart2挂载在APB1上。使能GPIOA和使能USART2的时候要注意,使能GPIOA用RCC_APB2PeriphClockCmd,使能USART2用RCC_APB1PeriphClockCmd。(调很久才发现这里的问题。。。)
5、串口通信中白线、绿线、黑线如何对应TX、RX、GND,这个问题百度没有找到答案,自己试的结果是白线->TX,绿线->RX,黑线->GND,红线->VCC。听说不同厂家规格不一样,测试的时候一个不行就换另一个吧。
6、烧程序时弹出SWD Communication Failure,百度了也没找到原因&#