目录
一、STM32CubeMX的安装
(一)安装JRE
由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用,
官网:https://www.java.com/en/download/manual.jsp
1、双击.exe程序

2、更改目标文件夹



3、安装中

4、安装成功,关闭即可

(二)安装STM32CubeMX
1、把压缩包解压到文件夹

2、双击.exe应用程序


3、同意协议,下一步

4、勾选第一个即可,第二个选项是是否同意ST公司收集你的个人使用信息等

5、更改路径,注意不要有中文

6、选择YES,这句话是安装本软件可能会与文件夹之前文件冲突,导致文件夹之前文件丢失,是否继续,选择继续即可
7、不用更改其他设置,直接下一步安装

8、安装完成,Done退出


(三)安装HAL固件库
什么是HAL固件库?
STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。
和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。
并且从16年开始,ST公司就逐渐停止了对标准固件库的更新,转而倾向于HAL固件库和 Low-layer底层库的更新,停止标准库更新,也就表示了以后使用STM32CubeMX配置HAL/LL库是主流配置环境;
HAL库,有在线安装、离线安装两种方式。
这里我选择在线安装
打开安装好的 STM32CubeMX 软件 点上面的Help -> Manage embedded software packages

会跳出来一个选择型号界面 ,勾选我们需要安装的STM32F1的HAL库, 点击“Install Now” 直到安装成功。 如下图:


二、STM32CubeMX下完成用GPIO端口使LED红绿灯周期闪烁
(一)创建工程
1、打开STM32CubeMX,创建新工程

2、选择需要使用的芯片,这里选择STM32F103C8,双击芯片


(二)初始化设置
1、配置时钟
设置成使用外部时钟源

2、配置时钟树

3、配置管脚
在左侧选择GPIO,在芯片上选择对应的输出管脚,设置成Output输出模式,这里我选择PA4,PA5,PA6

4、配置输出模式
分别点击三个管脚配置输出模式

(三)工程导出
1、设置工程名、保存路径、打开方式选择MDK-ARM V5

2、选择把.c和.h文件加入到工程中

3、选择GENERATE CODE,生成代码并导出

(四)在Keil中完善工程
1、找到生成的工程文件并打开

2、打开main.c文件

3、找到while循环,在BEGIN和END中间加入我们编写的代码

HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);//A0灯亮
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET); //A4灯灭,同时B0亮
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET); //A5灯灭,同时C15灯亮
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_RESET);//A6灯灭然后开始循环
4、生成.hex文件后进行烧录,观看结果
由于我上一篇博客里已经做过,这里不多赘述


三、STM32的USART串口通信程序
(一)了解串口通信与USART
1、串口通信是一种设备间非常常用的串行通行方式,其简单便捷,大部分电子设备都支持。
RS-232标准: 主要规定了信号的用途、通信接口以及信号的电平标准。
2、USART满足外部设备对工业标准 NRZ 异步串行数据格式的要求,并且使用了小数波特率发生器,可以提供多种波特率,使得它的应用更加广泛。USART 支持同步单向通信和半双工单线通信;还支持局域互连网络 LIN、智能卡(SmartCard)协议与 lrDA(红外线数据协会) SIR ENDEC规范。
USART支持使用 DMA,可实现高速数据通信。
(二)STM32系统给上位机(win10)连续发送“hello windows!”
采用HAL库方法
1、创建新工程

2、选择芯片

3、RCC配置

4、USART1配置

5、Project配置

6、Code Generate配置

7、生成代码

8、打开工程

9、在main.c的while循环上面写入以下代码:
char data[] = "\nHello windows!\n";
10、在while循环中写入以下代码:
HAL_UART_Transmit(&huart1, (uint8_t *)data, 15, 0xFFFF);
HAL_Delay(1000);

11、生成.hex文件

12、打开FlyMcu,导入.hex文件进行烧录

13、打开串口调试助手,打开串口,成功!

四、观察波形
使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形,更方便动态跟踪调试和定位代码故障点。 用此功能观察到3个GPIO端口的输出波形

HAL库使用的是延时函数,要比我们上一次采用软件延时准确地多
五、总结
通过这次学习,体会到了STM32CubeMX的强大与方便,也初步学习了一些简单的运用HAL库实现的功能,相信通过后面更深入的学习能够更加熟练地掌握更多。
本文介绍了如何使用STM32CubeMX配置GPIO实现LED红绿灯周期闪烁,以及如何配置USART进行串口通信。详细步骤包括STM32CubeMX的安装、HAL固件库的在线安装、工程创建、设置及代码生成,并在Keil中完善工程实现串口发送'hello windows!'。最后通过Keil的逻辑分析仪观察波形,总结了STM32CubeMX的便捷性和HAL库的优势。

1514

被折叠的 条评论
为什么被折叠?



