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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 【STM32 HAL】串口中断控制相关 -> 正文阅读

[嵌入式]【STM32 HAL】串口中断控制相关

引言

在移植modbus时需要进行串口接收与发送中断的控制,由于hal库封装比较复杂,不便于精细操作。在此记录串口中断的控制函数,不详细介绍串口的寄存器控制,仅就如何使用入手。如果不理解请自行学习。

串口中断类型

STM32F103系列较为常用,打开文件<stm32f1xx_hal_uart.h>可以看到所有hal库中关于串口的操作接口与说明。其中串口中断管理部分的函数说明中有写明可操作的串口中断种类有:

  * @arg UART_IT_CTS:  CTS change interrupt
  * @arg UART_IT_LBD:  LIN Break detection interrupt
  * @arg UART_IT_TXE:  Transmit Data Register empty interrupt
  * @arg UART_IT_TC:   Transmission complete interrupt
  * @arg UART_IT_RXNE: Receive Data register not empty interrupt
  * @arg UART_IT_IDLE: Idle line detection interrupt
  * @arg UART_IT_PE:   Parity Error interrupt
  * @arg UART_IT_ERR:  Error interrupt(Frame error, noise error, overrun error)

中断管理函数

中断管理主要是开启中断、关闭中断和获取中断状态,在文件中也能看到。三条接口均是宏定义直接操作寄存器。

使能中断 __HAL_UART_ENABLE_IT(HANDLE, INTERRUPT)

__HANDLE__   为需要操作的串口
__INTERRUPT__ 为中断类型

关闭中断 __HAL_UART_DISABLE_IT(HANDLE, INTERRUPT)

__HANDLE__   为需要操作的串口
__INTERRUPT__ 为中断类型

获取中断状态 __HAL_UART_GET_IT_SOURCE(HANDLE, IT)

用于查询某中断是否开启

__HANDLE__   为需要操作的串口
 __IT__ 为中断类型

中断标志位种类

有中断种类就有中断标志位种类,也在文件<stm32f1xx_hal_uart.h>中有说明

  * @arg UART_FLAG_CTS:  CTS Change flag (not available for UART4 and UART5)
  * @arg UART_FLAG_LBD:  LIN Break detection flag
  * @arg UART_FLAG_TXE:  Transmit data register empty flag
  * @arg UART_FLAG_TC:   Transmission Complete flag
  * @arg UART_FLAG_RXNE: Receive data register not empty flag
  * @arg UART_FLAG_IDLE: Idle Line detection flag
  * @arg UART_FLAG_ORE:  Overrun Error flag
  * @arg UART_FLAG_NE:   Noise Error flag
  * @arg UART_FLAG_FE:   Framing Error flag
  * @arg UART_FLAG_PE:   Parity Error flag

中断标志位管理

中断标志位的管理主要有中断标志位的查询与标志位的清除。和中断控制一样,均使用宏定义直接操作寄存器。

查询中断标志 __HAL_UART_GET_FLAG(HANDLE, FLAG)

__HANDLE__   为需要操作的串口
__FLAG__  为查询的类型

清除中断标志 __HAL_UART_CLEAR_FLAG(HANDLE, FLAG)

__HANDLE__   为需要操作的串口
__FLAG__  为查询的类型

并不是所有中断标志都可以清除所以此接口只能清除以下中断标志位

  * @arg UART_FLAG_CTS:  CTS Change flag (not available for UART4 and UART5).
  * @arg UART_FLAG_LBD:  LIN Break detection flag.
  * @arg UART_FLAG_TC:   Transmission Complete flag.
  * @arg UART_FLAG_RXNE: Receive data register not empty flag.

特殊专用接口

对于某些较为常用的中断控制与中断标志会有专用的接口函数方便使用。这里不做详细展开。

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

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