使用stm32cubeide(HAL库)开发
1.新建stm32工程。
2.输入型号,选择对应的新品,点击next。
3.输入名称,点击finish,完成工程创建。
4.选中RCC,配置 High Speed Clock(HSE) 为 Crystal/Creamic Resonator。
5.切换到时钟树配置,将时钟改为72MHz,会跳出提示框,点击ok,软件会自动帮你配置好一切设置,当然这里有个前提,你使用的开发板上是带有外部晶振的,并且这个外部晶振是8.000MHz。
6.找到usart1,将Mode设置为Asynchronous(异步),并且勾选打开中断。
不要忘记配置波特率(波特率应该与串口屏上配置的波特率一致)。
7.配置完毕,按下ctrl + s 保存,就会自动生成初始代码,或者找到Project菜单,点击Generate Code。
8.生成代码后请第一时间修改编码(现在不设置,后期修改时中文会乱码)。
8.1 右键工程选择属性
8.2 根据自己的需求选择合适的编码,这里的编码要和串口屏的编码一致。
8.3 某些编码不存在,可以手动输入,比如GB2312,输入完成后点击 Apply and Close 完成设置。
8.3 将tjc_usart_hmi.c复制到Src文件夹,将tjc_usart_hmi.h复制到Inc文件夹(这两个文件会在后面的工程里提供,需要自行从工程里找到然后导入客户自己的工程中)。
复制完成后如图所示
9.切换到main.c, 在 USER CODE BEGIN Includes 和 USER CODE END Includes 之间插入 #includes
如有疑问请参考: 为什么要在begin和end之间插入代码
10.切换到main.h,在 USER CODE BEGIN ET 和 USER CODE END ET 之间声明 huart1 会在其他文件中调用
11.切换到main.c,在 USER CODE BEGIN 2 和 USER CODE END 2 之间初始化环形缓冲区和打开串口接收中断
并且在 USER CODE BEGIN 3 和 USER CODE END 3 之间添加解析代码。
为什么要在begin和end之间插入代码
如果不是在begin和end之间插入的代码,在图形界面重新配置了STM32的功能并使用Generate Code生成代码时,会导致代码丢失
而写在begin和end之间的代码则不会丢失