HAL库开启串口空闲中断

2023-05-16

串口接收数据时,开启空闲中断后可在接收完成触发中断,再去做进一步处理,但找了半天没找掉HAL库的使能某中断的函数,以及判断是哪个中断触发的函数,原来在stm32f4xx_hal_uart.h中有相关宏定义。

 

使能中断的宏定义

__HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__)

 

判断是触发哪个中断的宏定义

__HAL_UART_GET_FLAG(__HANDLE__, __IT__)

 

清除IDLE的中断标志位的宏定义

__HAL_UART_CLEAR_IDLEFLAG(__HANDLE__)

 

我是要开启所有串口的空闲中断,所以在stm32f4xx_hal_uart.c中的HAL_UART_Init()函数中添加了使能串口空闲中断的宏定义

 

    /*Enable the IDLE Interrupt*/

    __HAL_UART_ENABLE_IT(huart,UART_IT_IDLE);

 

然后在stm32f4xxit.c中向对应的串口中断服务函数中添加判断是否为空闲中断,若是空闲中断则进入空闲中断处理函数,空闲中断处理函数是自己写的。

 

if(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_IDLE) != RESET)

{

    UART_IDLECallBack(&huart1);

}

 

进入串口的空闲中断服务函数后,清除空闲中断标志位,然后在做自己想对数据做的处理。

 

void UART_IDLECallBack(UART_HandleTypeDef *huart)

{

    /*uart1 idle processing function*/

    if(huart == &huart1)

    {

        __HAL_UART_CLEAR_IDLEFLAG(&huart1);

        /*your own code*/

    }

    /*uart2 idle processing function*/

    if(huart == &huart2)

    {

        __HAL_UART_CLEAR_IDLEFLAG(&huart2);

        /*your own code*/

    }

    /*uart3 4 5 6... idle processing function*/

    ...     ...

 

}

 

 

转载;

STM32F4的HAL库开启串口空闲中断-单片机-电子工程世界网 (eeworld.com.cn)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HAL库开启串口空闲中断 的相关文章

  • gun-grub引导选择页面的美化

    不出意外地 xff0c 安装好Ubuntu和Windows的双系统后应该是由Ubuntu的grub引导启动的 也就是那个及其丑陋的页面 逃 优化设置 grub引导的设置文件是 etc default grub xff0c 对其进行修改可以得
  • 双系统完整卸载Ubuntu+Windows磁盘分区安全删除Ubuntu的EFI分区和其他分区

    就参考这篇文章吧 https blog csdn net wq6ylg08 article details 103223620 大致上分为三个步骤 一 把开机引导给删除 可以使用easyUEFI或者BOOTICE 删除你准备卸载的系统的引导
  • legacy传统模式启动下的win10和Ubuntu18.04双系统安装

    前提是你的电脑支持传统模式开机 比如现在的一些笔记本已经不支持传统模式了 强行会找不到引导 和这篇文章大致相同 注意以下不同点 1 在为linux分区的时候 legacy模式下的启动引导分区需要这样设置 空闲 处 xff0c 继续点 43
  • 使用rEFInd来引导多个操作系统

    以下讲解仅适用于EFI的启动模式 且注意一定要关闭secure boot 在同一个电脑上安装了N个操作系统 在开机时 引导肯定会非常的混乱 一种方式是可以使用windows boot manager来选择要启动的操作系统 但是缺点是每次开机
  • rEFInd去掉不必要的启动项

    refind是uefi环境下使用的引导器 如果一台设备上有N个系统 xff0c 那么有必要了解一下refind如 何来引导 但因为默认的引导效果是非常杂乱的 xff0c 我们需要做一些工作 一 安装refind 参考这篇文章 https b
  • pacman的常用命令

    S 指令 安装 sudo pacman S 安装软件 sudo pacman Sy 获取最新打软件情况 xff0c 如果已经是最新了 xff0c 直接会提示已经更新到最新了 sudo pacman Syy 强行更新你的应用的软件库 xff0
  • pacman的包管理命令

    S 指令 安装 sudo pacman S 安装软件 sudo pacman Sy 获取软件源的最新情况 xff0c 如果已经是最新了 xff0c 会提示已经更新到最新了 sudo pacman Syy 重新同步应用的软件源 sudo pa
  • vscode的不同设置的区别

    转载链接 https www jb51 net article 186000 htm
  • Unable to register with master node [http://localhost:11311/]: master may not be running yet.

    树莓派和PC端都安装了ROS xff0c 然后将树莓派ROS当主机运行roscore xff0c 为了让两台机子的ROS可以通讯 xff0c 需要在PC端的 bashrc文件中配置如下环境变量 xff1a PC端 bashrc文件 expo
  • 新手安装arch安装界面wifi-menu连接不了wifi

    新手安装arch安装界面wifi menu连接不了wifi 在物理机上安装arch 但是遇到了一个很无语的地方 因为安装arch是要联网下载基础包的 所以在安装过程中要进行联网 我是连接的wifi 在安装命令行里执行 wifi menu 可
  • 安装arch的网络连接问题(新手易犯)

    估计有很多像我这样的 第一次安装arch 被网络的连接问题搞得欲仙欲死 这篇文章就总结一下我遇到的问题 只适用于wifi无线连接 有线的绕开 刚开始安装 进入到live系统 你会发现 哎 可以使用wifi menu iw 等这些命令 但是a
  • Arch设置开机自动连接wifi网络:

    Arch设置开机自动连接wifi网络 i3wm netctl是arch的源生项目 xff0c 集成于base包 netctl基于命令行 xff0c 你可以安装其他的图形网络管理工具 从 etc netctl examples 拷贝 wire
  • 现在最新版的vmware已经和win10hyper-v兼容

    新增功能 此 VMware Workstation Pro 发行版本是面向所有 VMware Workstation 15 Pro 用户的免费升级 其中包含以下更新 xff1a 支持 Windows 10 主机 VBS xff1a 现在 x
  • Linux下如何设置交换文件?

    一 创建指定大小的文件 我们需要用到dd命令来创建一个指定大小的空文件 xff0c 比如是1G xff0c 执行命令 dd if 61 dev zero of 61 swap bs 61 1024 count 61 1048576 上面命令
  • 虚拟机vmware安装arch在桥接模式下没有eth0网卡,只有ens33,提示no such device

    参考大牛的一篇博客 道理都是一样的 CentOS7系统安装完毕之后 xff0c 输入ifconfig命令发现没有eth0 不符合我们的习惯 而且也无法远程ssh连接 xff0c 这个问题解决起来还算简单 xff1a 一 xff0c 永久搞定
  • vim或gvim的配置(推荐)

    本文简述如何跟换gVim的字体和选择喜欢的配色方案 xff1a 1 下载配色方案 xff1a gVim官网提供了很多配色方案 xff0c 可以根据自己的需要来选择下载 xff0c 本人比较喜欢深色背景系列的 xff0c 所以以下列举一些 x
  • vim的光标设置

    光标显示选项 可以通过以下命令设置guicursor选项 xff0c 来定义图形界面下的光标显示 xff1a set guicursor 61 mode style highlight mode style highlight 其中 xff
  • 如何修改WSL的安装路径

    一 还没有安装wsl实例 自定义wsl安装位置 下载wsl的appx镜像https docs microsoft com zh cn windows wsl install manual xff0c 比如下载的Ubuntu 18 04 将下
  • WSL安装Arch

    WSL安装Archlinux子系统 再次感谢助人为乐的朋友 xff1a https github com yuk7 ArchWSL 下载releases的zip包 并解压到一个有写权限的地方 xff0c 在右键管理员权限运行Arch exe
  • 【rotors】多旋翼无人机仿真(一)——搭建rotors仿真环境

    rotors 多旋翼无人机仿真 xff08 一 xff09 搭建rotors仿真环境 rotors 多旋翼无人机仿真 xff08 二 xff09 设置飞行轨迹 rotors 多旋翼无人机仿真 xff08 三 xff09 SE3控制 roto

随机推荐

  • 黑苹果热补丁hotpatch来禁用笔记本独显

    写在前面 最近我根据 RehabMan 的 hotpatch 添加了一些路径做了一个屏蔽独显得 hotpatch 来屏蔽独显解决一些升级 10 13 后因为 nv disable 参数失效而卡在 Window Server Service
  • _OFF方法包含EC依赖的情况,笔记本禁用独显的方法(通过修改DSDT和SSDT)

    概述 这个教程的目的 xff0c 是向大家展示 xff0c 怎样通过修改DSDT和SSDT xff0c 来屏蔽双显卡笔记本的独立显卡 xff08 例如 xff1a Intel集成显卡 xff0b 英伟达独立显卡 Optimus技术 xff0
  • 如何通过配置文件修改powershell for .net firmwork的启动路径

    一 在用户所在的文档目录中创建一个名为 WindowsPowerShell 的目录 例如 xff1a C Users silence Documents WindowsPowerShell 二 在WindowsPowerShell的目录下创
  • vim中查看和修改文件编码格式

    vim 中查询和转换文件编码格式 set fileencoding 查看现在文本的编码 set fenc 61 编码 转换当前文本的编码为指定的编码 set enc 61 编码 以指定的编码显示文本 xff0c 但不保存到文件中 这里的 编
  • win10使用cmd合并两个文件

    先在目标目录下打开cmd 输入 copy b 文件名1 后缀1 43 文件名2 后缀2 目标文件名 目标后缀 回车完成
  • 黑苹果intel网卡驱动

    方法1 链接 https pan baidu com s 192A1NAB0mkkSA151KkxAYA 密码 d4gj 备用 xff1a https pan baidu com s 1p7LxLxwlRFhnvIjzCbx49w 提取码
  • 分享最新版的 INTELWIFI 驱动包

    转载 http bbs pcbeta com forum php mod 61 viewthread amp tid 61 1856465 amp extra 61 page 3D1 26filter 3Dtypeid 26typeid 3
  • intel网卡驱动方法1的安装说明书

    Z大github https github com zxystd itlwm 说明书 1 解压itlwm 43 客户端 将heliport 拖进应用程序 安装 2 若为clover引导 把itlwm kext拖进EFI Clever Kex
  • 绝地求生键位魔改v3.0

    因为fps类游戏的默认按键和LOL有很大差别 从舒服度和操作灵活性上说 LOL应该是更胜一筹 今天我就强行改下键位布局 当然这不是最终版 女士们和先生们欢迎讨论 绝地求生魔改键位 未提到的保持默认设置 各位同学根据需要修改 图像 显示模式
  • 绝地求生魔改键位v4.0

    绝地求生魔改键位v4 0 未提到的保持默认设置 各位同学根据需要修改 图像 显示模式 窗口化 分辨率 1920 1080 抗锯齿 超高 后期处理 超高 材质 超高 其他的都保持为 低 鲜明度 禁用 垂直同步 禁用 运动模糊 禁用 声音 音乐
  • 【rotors】多旋翼无人机仿真(四)——参数补偿和PID控制

    rotors 多旋翼无人机仿真 xff08 一 xff09 搭建rotors仿真环境 rotors 多旋翼无人机仿真 xff08 二 xff09 设置飞行轨迹 rotors 多旋翼无人机仿真 xff08 三 xff09 SE3控制 roto
  • VMware15.5.5虚拟机大小写无法切换(CapsLock键作用失效)解决方法

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 最近安装了manjaro
  • win10设置定时关机

    1 右击此电脑 打开管理 2 选择左侧的任务计划管理 并创建基本任务 3 按照需求设置 点击下一步 4 进入 启动程序 项 xff0c 如果系统在C盘 xff0c 那么在 程序或脚本 框内输入 C Windows System32 shut
  • linux如何手动添加app的图标

    退回根目录 cd 进入图标存放目录 cd usr share applications 用文本编辑器打开打开eclipse的图标文件 没有会自动创建 sudo gedit eclipse desktop 将以下部分添加进去 xff1a De
  • 单片机考前复习

    填空 选择 简答程序设计题 xff08 要求看懂硬件电路图 xff09 开卷考 题量比较大 第三章以后是于课堂上的课 c语言编程基础 第四章讲的是keil的操作 xff08 考试忽略 xff09 第五章讲的单片机的一些应用实例 xff08
  • 在word中插入漂亮的代码

    这种方法简单 xff0c 插入之后的代码格式类似于nodepad 43 43 xff0c 但是需要注意的是一定要用chrome浏览器打开 xff0c 我最开始的使用的是firefox xff0c 结果粘贴到word中之后 xff0c 总是无
  • Octave添加package方法

    Octave 兼容 MATLAB xff0c 但并非100 适配 里面的一些函数并没有包含在内 如果没有 xff0c 那这些函数可能包含在Octave forge中 xff0c 也可能是新添加的MATLAB函数 xff0c Octave尚未
  • 线性回归最小二乘法公式推导

    1 符号表示 首先我们将训练样本的特征矩阵X进行表示 xff0c 其中N为样本个数 xff0c p为特征个数 xff0c 每一行表示为每个样本 xff0c 每一列表示特征的每个维度 xff1a
  • Python与C/C++相互调用

    https www cnblogs com yanzi meng p 8066944 html
  • HAL库开启串口空闲中断

    串口接收数据时 xff0c 开启空闲中断后可在接收完成触发中断 xff0c 再去做进一步处理 xff0c 但找了半天没找掉HAL库的使能某中断的函数 xff0c 以及判断是哪个中断触发的函数 xff0c 原来在stm32f4xx hal u