前言:
由于一些兴趣爱好,想进行DIY,实现一些小功能,同时想试用一下强大的stm32cube和hal库,谁知道各种坑踩得郁闷得不行,特意留下一些记录给后人引以为鉴。当然,什么硬件正常,连接良好这些都是前提,请提前排除。
开发环境:KEIL 5.25.2.0
stm32cubeMX V5.2.1
Windows 10
stm32f103c8t6 核心板
ST-LINK V2
这里使用的是UASRT1,开启全局接收中断模式,处理在接收回调函数进行。串口参数为:115200、8bit、1bit stop、non-parity。
具体过程不在赘述,以下仅提出一些注意点:
1.在stm32cube中要注意clock configuration的配置,不可以选用默认配置,具体如下图所示:(PS:我在cube生成配置中project manage—coed generator—generated files中勾选了每个外设单独一个.c和.h)
2.main.c的修改:
(1)初始化之后加入启动语句:
在主函数进入while循环之前,一定要加入HAL_UART_Receive_IT(&huart1,(uint8_t *)RXdata,1)语句,不然会无法进入接收回调函数。