使用stm32cubeide(HAL库)开发

1.新建stm32工程。

../../_images/stm32_2_1.jpg

2.输入型号,选择对应的新品,点击next。

../../_images/stm32_2_2.jpg

3.输入名称,点击finish,完成工程创建。

../../_images/stm32_2_3.jpg

4.选中RCC,配置 High Speed Clock(HSE) 为 Crystal/Creamic Resonator。

../../_images/stm32_2_4.jpg

5.切换到时钟树配置,将时钟改为72MHz,会跳出提示框,点击ok,软件会自动帮你配置好一切设置,当然这里有个前提,你使用的开发板上是带有外部晶振的,并且这个外部晶振是8.000MHz。

../../_images/stm32_2_5.jpg

6.找到usart1,将Mode设置为Asynchronous(异步),并且勾选打开中断。

../../_images/stm32_2_6.jpg

不要忘记配置波特率(波特率应该与串口屏上配置的波特率一致)。

../../_images/stm32_2_6_1.jpg

7.配置完毕,按下ctrl + s 保存,就会自动生成初始代码,或者找到Project菜单,点击Generate Code。

../../_images/stm32_2_7.jpg

8.生成代码后请第一时间修改编码(现在不设置,后期修改时中文会乱码)。

8.1 右键工程选择属性

../../_images/stm32_2_8.jpg

8.2 根据自己的需求选择合适的编码,这里的编码要和串口屏的编码一致。

../../_images/stm32_2_9.jpg

8.3 某些编码不存在,可以手动输入,比如GB2312,输入完成后点击 Apply and Close 完成设置。

../../_images/stm32_2_10.jpg

8.3 将tjc_usart_hmi.c复制到Src文件夹,将tjc_usart_hmi.h复制到Inc文件夹(这两个文件请自行从文末给出的工程中自行提取)。

../../_images/stm32_2_11.jpg

复制完成后如图所示

../../_images/stm32_2_12.jpg

9.切换到main.c, 在 USER CODE BEGIN Includes 和 USER CODE END Includes 之间插入 #includes

如有疑问请参考: 为什么要在begin和end之间插入代码

../../_images/stm32_2_13.jpg

10.切换到main.h,在 USER CODE BEGIN ET 和 USER CODE END ET 之间声明 huart1 会在其他文件中调用

../../_images/stm32_2_14.jpg

11.切换到main.c,在 USER CODE BEGIN 2 和 USER CODE END 2 之间初始化环形缓冲区和打开串口接收中断

并且在 USER CODE BEGIN 3 和 USER CODE END 3 之间添加解析代码。

../../_images/stm32_2_15.jpg

为什么要在begin和end之间插入代码

如果不是在begin和end之间插入的代码,在图形界面重新配置了STM32的功能并使用Generate Code生成代码时,会导致代码丢失

而写在begin和end之间的代码则不会丢失