基于上一次将第一章:STM32MxCube 基本使用方法,本章直接讲叙述STM32配置串口2的。
查看STM32F407电路图:可得USART2接在PA2、PA3。
下面新建STM32MxCube工程,开始配置。这里我们配置IO(定义PF9、PF10引脚为LED)、RCC(使用HSE)、USART(串口)。
配置USART(串口)
USART的配置有好几种,也是最常见的一种”UART异步串行通信”配置来讲述。
选择USART2模式为“asynchronous”(异步通信)对应的引脚自动转换为USART。
对于系统时钟应该都知道它的作用,就是驱动整个芯片工作的心脏,如果没有了它,就等于人没有了心跳。时钟的快慢也就决定了程序的快慢。
STM32的时钟树功能比较强大,分频、倍频可以根据你的需求配置出多种时钟。STM32CubeMX这个工具在这一块也是做的比较人性化的,可以直观的看见具体配置,而且有错误提示(注意:不同型号芯片的时钟树可能不同,但大同小异),我们配置为HSE,如下图:
“综合”配置
这里的配置相当于初始化一些配置,集齐了前面的引脚对应的初始化配置,所以叫“综合配置”。
由于我们主要配置了IO 和 USART,所以在这个选项里面,重点关心的就是这两项。
最后生成代码、编译下载,无任何效果。
添加以上代码就能实现:间隔(约0.5S)LED亮灭变化一次,且串口打印数据。
上面是将打印数据装入数组,下面是延时打印数据,同时点亮LED。
下面讲解一下生成的目录结构
在MDK-ARM工程中,可以看到四个目录,分别是:
HAL库:这个库类似于标准外设库(在Drivers目录下)
启动文件startup_stm32f103xe.s:这个文件也和标准外设库里面文件startup_stm32f10x_hd.s类似。
User用户应用:这个目录下是用户添加源代码文件的目录,如果要添加新文件可以在这里添加。
CMSIS微控制器软件接口标准:这个目录也是属于底层的代码(和我之前使用标准外设库建立的软件工程类似,也是位于Drivers目录下)。
打开使用STM32CubeMX新建的软件工程可以看见很多地方有成对的注释代码“USER CODE BEGIN”和“USERCODE END”,这两个注释之间就是用户添加自己代码的区域。如main.c文件下就有多处用户编程区域。
当我们使用STM32CubeMX新建软件工程后,打开软件可以看见里面有很多代码就是通过STM32CubeMX工具自动生成的(是STM32CubeMX的特性),下面大概讲述一下本文生成的代码。
.四个主初始化代码:
HAL库底层初始化
SystemClock_Config(); 时钟配置
MX_GPIO_Init(); IO初始化(用户需求)
MX_USART1_UART_Init(); USART初始化(用户需求)
这四个主初始化配置代码中,前面两个基本上是使用STM32CubeMX工具生成都有的代码,后面两个才是用户根据自己需求配置的代码。
这个属于软件工程的标配,主要对初始化(默认)FLASH和NVIC等。
这个函数会使程序不能访问FLASH,也就是为什么我们程序在运行的时候不能下载代码的原因,解决的办法:1.不调用该函数; 2.使MCU处于复位状态下载代码
当你使用以前标准外设库开发过STM32,知道时钟初始化代码,那么这个函数应该很熟悉。其实这里的配置就是上面说的RCC配置(时钟树),参数就是时钟树对应的值。看时钟树就很容易理解。
位于main.c文件。
MX_GPIO_Init();
这个函数是我们配置的IO函数(对PF11引脚初始化,很简单),位于main.c文件。
和以前使用标准外设库开发类似,其中的参数就是上面“综合配置” 里设置的。
MX_USART1_UART_Init();
这个函数是我们配置的USART,位于main.c文件。
和以前使用标准外设库开发类似,其中的参数就是上面“综合配置” 里设置的,波特率、数据位数、停止位等。
上一篇:STM32CubeMX学习教程之一:GPIO输出之跑马灯
下一篇:STM32Cube微控制器开发软件在GitHub正式上线
推荐阅读最新更新时间:2024-11-13 00:18
设计资源 培训 开发板 精华推荐
- MIC2097-2YMT限流配电开关典型应用
- DC2294A,电源系统管理 PSM Linduino One Shield 演示板
- pt4205小功率横流驱动 (未验证)
- NCP451 3A 超小型低 Ron 和带自动放电路径的受控负载开关的典型应用
- 使用 Analog Devices 的 LT3467AIS67 的参考设计
- LT1117IST-3.3 用于改善纹波抑制的低压差正稳压器的典型应用
- EVAL-AD5621EBZ,用于 AD5621 12 位、串行输入、VOUT NanoDAC 的评估板
- PIC12F752 交流/直流 LED 驱动器
- LTC3526LEDC-2 2 节电池至 5V 升压转换器的典型应用电路
- 高频焊台+热风枪的主板板