STM32CubeMX学习二 之UART配置


前言

记录一下STM32CubeMX的学习笔记,同时分享给初学的小白,希望一起进步。


一、本地环境

编译环境:KEIL
代码生成:STM32CubeMX
库:HAL
MCU:STM32F072

二、开始

1.工程创建

打开 STM32CubeMX,在“New Project”中点击"ACCESS TO MCU SELECTOR"来选择MCU的型号。
在这里插入图片描述

之后在对应的搜索框内选择你自己的mcu型号,然后选择即可。

在这里插入图片描述

双击芯片进来过后可以看到以下界面:
在这里插入图片描述
一共有五个部分:
1、引脚配置,外设配置
2、时钟配置
3、工程配置
4、引脚外设配置下拉选项
5、芯片图

这里我们只讲解UART配置。

2.UART配置

选中“Pinout&Configuration”选项,点击左边的Connectivity选项,选中USART2,并且将模式选为Asynchronous即异步串口模式,其他的的串口模式可以按照需求进行选择。
在这里插入图片描述

选择之后,我们可以看到右边的引脚分配图的PA2和PA3已经设置成了USART2_TX和USART2_RX模式。
在这里插入图片描述

选择好之后,我们在Configuration界面进行串口配置。
在这里插入图片描述
1、NVIC Setting :配置串口中断使能
2、DMA Setting :配置发送接收的DMA模式
3、GPIO Setting :配置串口引脚
4、Parameter Setting :配置串口

我这里没有使用串口中断所以没有配置,如果要使用的话直接Enabled就行了。
这里是串口配置:
波特率:115200
字节长度:8
无校验
一个停止位
在这里插入图片描述

2.时钟配置

配置完GPIO后开始配置时钟,这里讲的是没有外部时钟,用的是内部时钟,默认14Mhz的内部时钟。
在这里插入图片描述

3.代码生成

时钟配置完毕后,选择“Project Manager”到工程配置界面。
1、配置工程的名称
2、工程存储路径
3、IDE选择(如果是keil工具,选择MDK-ARM)
4、mcu依赖的cube包在哪个目录
在这里插入图片描述

接着到“Code Generator”下选择这几个选项来生成工程:

在这里插入图片描述

选择好过后我们就可以点击右上角的"GENERATE CODE"按键来生成代码了。
如果提示你的firmware package 缺少直接更新下载即可,如果没网状态,就需要去官网下载依赖包放在之前提到的目录下即可。

我是用以下依赖包生成的工程代码。
在这里插入图片描述

3.编译工程

点击编译按钮对工程进行编译。
在这里插入图片描述
在 CubeMX 生成的文件中添加用户代码的时候,必须是写在/* USER CODE BEGIN n*/和/* USER CODE
END n*/之间。这样如果需要改变 Cube 工程的配置,在重新生成代码时,在这两句注释之间的语 句不会被覆盖。而用户新建或添加的文件不会受到影响。

编译完成后,我们去到 stm32f0xx_hal_uart.c的源文件,然后右键,打开相应的头文件。
在这里插入图片描述
在这里插入图片描述
找到串口函数:
在这里插入图片描述
在main函数中添加以下代码即可:
在这里插入图片描述

编译程序,下载运行,mcu即可循环发送“Hello world”。

函数解析:
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
第一个参数 huart:串口的句柄结构体指针,本例中使用&huart2,因为 CubeMX 配置生成的代码 中已经定义了 huart2,并且在初始化函数 MX_USART2_UART_Init( )代码中已经将该变量和硬件的 USART2进行了关联,所以操作的就是 USART2
第二个参数 pData:是要发送的数据的指针,可以像本例一样,直接写入字符串。
第三个参数 Size:本次要发送的字符数量。
第四个参数 Timeout:超时时间,单位是 ms。这是发送一个字符的超时时间,如果发送某个字符 超过了所给的参数,则函数会返回 HAL_TIMEOUT。
该函数是有返回值的,返回值反映的是整个发送过程是否有错误。本例中没有考虑返回值。

如果要使用串口中断函数或者DMA函数需要配置cubemx对应的设置:
NVIC设置:
在这里插入图片描述
DMA设置:
在这里插入图片描述


创作不易,请大佬们点个赞!
有问题请留言讨论!
  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值