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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 用CubeMX配置STM32串口通信USART -> 正文阅读

[嵌入式]用CubeMX配置STM32串口通信USART

本文为作者学习Cubemx配置USART串口通信的笔记
欢迎交流讨论,喜欢的话点个赞吧

CubeMX中的USART配置

  1. 按照下图将引脚配置为异步通信模式

在这里插入图片描述

  1. Configuration一栏中可以调整该通信的参数

在这里插入图片描述

  1. 如果需要用到外部中断,则需要在NVIC Setting一栏中勾选Enable

在这里插入图片描述


HAL库中串口发送的有关函数

1.阻塞式发送函数

HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, 
                                    uint8_t *pData, 
                                    uint16_t Size, 
                                    uint32_t Timeout);
  • 特点:发送数据过程中等数据发完,函数才执行完

2.非阻塞式发送函数

HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, 
                                       uint8_t *pData, 
                                       uint16_t Size)
  • 特点:当发送数据完成后,会使能发送中断,调用发送完毕中断回调函数

__weak是指弱函数定义,在其他地方可以重复定义该函数,这个可以看一段英文解释
NOTE: This function should not be modified, when the callback is needed, the HAL_UART_TxHalfCpltCallback or HAL_UART_TxHalfCpltCallback can be implemented in the user file.

// 发送完成后调用
__weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) 
{

}

// 发送一半后调用
__weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) 
{

}

3.举个例子说明串口发送函数的应用

发送数组dat_Txd中的前5个数据到USART1,在数据发送完成后,翻转PB9引脚的输出电平

// 使用非阻塞式的串口发送数据
HAL_UART_Transmit_IT(&huart1, dat_Txd, 5); 
void HAL_UART_TX_Cpltcallback(UART_HandleTypeDef *huart)
{
    if(huart->Instance = USART1)
    {
        HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);
    }
}

// 使用阻塞式的串口发送数据
HAL_UARRT_Transmit(&huart1, dat_Txd, 5, 10000);
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);

HAL库中串口接收的有关函数

1.阻塞式接收函数

HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart,
                                   uint8_t *pData, 
                                   uint16_t Size, 
                                   uint32_t Timeout)
  • 特点:需要等串口接收完所有数据之后才结束函数

2.非阻塞式接收函数

HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart,
                                      uint8_t *pData,
                                      uint16_t Size)
  • 特点:当接收数据完成后,会使能接收中断,调用接收完毕中断回调函数

__weak是指弱函数定义,在其他地方可以重复定义该函数,这个可以看一段英文解释
NOTE: This function should not be modified, when the callback is needed, the HAL_UART_RxHalfCpltCallback or HAL_UART_RxHalfCpltCallback can be implemented in the user file.

__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{

}

__weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)
{

}

3.举个例子说明串口接收函数的应用

接收USART1中的一个字节,将其保存在dat_Rxd变量中,在数据发送完成后,若该字节为0x5A,则翻转PB8引脚的输出电平

// 使用非阻塞式的串口接收数据
HAL_UART_Transmit_IT(&huart1, &dat_Rxd, 1);
void HAL_UART_RxCpltCallbback(UART_HandleTypeDef *huart)
{
    if(huart->Instance == USART1)
    {
        if(dat_Rxd == USART1)
            HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_8);
    }
}

请在转载文章过程中明确标注文章出处!尊重原创,尊重知识产权,谢谢!

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:12:35  更:2021-08-30 12:24:31 
 
开发: 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年11日历 -2024/11/26 1:37:27-

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