IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32CubeMX学习二 之UART配置 -> 正文阅读

[嵌入式]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设置:
在这里插入图片描述


创作不易,请大佬们点个赞!
有问题请留言讨论!
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:27:45  更:2022-09-04 01:30:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 17:20:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计