STM32F4的HAL库开启串口空闲中断

发布者:JoyfulHarmony最新更新时间:2018-06-08 来源: eefocus关键字:STM32F4  HAL库  串口  空闲中断 手机看文章 扫描二维码
随时随地手机看文章

串口接收数据时,开启空闲中断后可在接收完成触发中断,再去做进一步处理,但找了半天没找掉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库  串口  空闲中断 引用地址:STM32F4的HAL库开启串口空闲中断

上一篇:STM32F429串口IDLE中断+DMA接收串口数据
下一篇:STM32F746 利用HAL库编写串口驱动程序

推荐阅读最新更新时间:2024-03-16 16:05

第22章 STM32F429的SysTick实现多组软件定时器
22.1 初学者重要提示 比通用定时器要容易掌握很多,因为嘀嗒定时器的功能比较的单一,根据ARM的说法,此定时器就是专门为RTOS的系统时钟节拍而设计。 本章节为大家讲解的多组软件定时器实现方案非常实用,建议初学者熟练掌握。 22.2 Systick基础知识 关于滴答定时器,初学者仅需了解到以下几点知识就够了。 Systick是Cortex-M4内核自带的组件,其它几个常用的硬件异常HardFault,SVC和PendSV也都是是内核自带的,其中Systick,SVC和PendSV的中断优先级是可编程的,跟SPI中断、ADC中断、UART中断等一样,都在同一个NVIC下配置的。而HardFault是不可编程的,且优先级
[单片机]
第22章 <font color='red'>STM32F4</font>29的SysTick实现多组软件定时器
STM8L USART串口使用
STM8L上有多个串口,最多可达5个,分别为USART1~USART5,但依据型号不同,搭载数量并不相同。 以STM8L052R8为例,其只具有USART1~USART3。 因为STM8系列功能众多,很多Pin都是复用的,因此使用前必须检查STML的参考手册。 通过手册可知,以USART1为例,RX/TX可以使用以下的管脚,默认是PC2/PC3, 如果要变更,需要修改SYSCFG remap control register 1 (SYSCFG_RMPCR1)的5:4位进行切换。 Bits 5:4 USART1TR_REMAP : USART1_TX and USART1_RX remapping 00: USA
[单片机]
STM32CUBEIDE----配置输出串口中文和文本大小
概述 TM32CubeIDE是一体式多操作系统开发工具,是STM32Cube软件生态系统的一部分。 STM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。 STM32CubeIDE集成了STM32CubeMX的STM32配置与项目创建功能,以便提供一体化工具体验,并节省安装与开发时间。在通过所选板卡或示例选择一个空的STM32 MCU或MPU,或者预配置微控制器或微处理器之后,将创建项
[单片机]
STM32CUBEIDE----配置输出<font color='red'>串口</font>中文和文本大小
RS-232多串口扩展器件SP2538及其应用
摘要:SP2538是采用低功耗CMOS工艺生产的专用串行口(RS232)扩展芯片,它可将单片机或DSP等原有的单UART串口扩展至5个全双工UART口,从而解决了此类器件串口太少的问题。文中介绍了SP2538的性能特点,引脚功能及应用方法,并以单片机为例给出了多串口扩展的硬件电路及相应的通信程序。 关键词:RS-232;串口扩展;单片机;SP2538 1 概述 SP2538是专用低功耗串行口扩展芯片,该芯片主要是为解决当前基于UART串口通信的外围智能模块及器件较多,而单片机或DSP原有的UART串口又过少的问题而推出的。利用该器件可将现有单片机或DSP的单串口扩展至5个全双工串口。与其它具有多串口的单片机或串口扩展方案相比
[应用]
STM32应用简章之串口配置
①串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd(); ③GPIO端口模式设置:GPIO_Init(); ④串口参数初始化:USART_Init(); ⑤开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤) NVIC_Init(); USART_ITConfig(); ⑥使能串口:USART_Cmd(); ⑦编写中断处理函数:USARTx_IRQHandler(); ⑧串口数据收发: void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的
[单片机]
2440裸机程序——串口收发数据
工程当中需要添加 S3C2440A.s ;2440lib.c;main.c;uart0.c 这四个程序。 主程序: /********************************************************************************************* * File name: main.c * Author: ZXL * Description: 在PC机通过串口0向终端发送一行字符(以回车键结束),开发板接收串口数据后,保存在数组中,再传回到PC端,通过终端回显。 * History: 2013.5.8 *******************************
[单片机]
MSP430f2619学习—串口通信
1.初始化 USCI_A0引脚:P3.4、P3.5; UCA0CTL0:配置寄存器0,可配置奇偶校验位、数据位、通信模式等参数; UCA0CTL1:配置寄存器1,可配置时钟源等参数; 串口0初始化配置 void UART0_Init(void) { UCA0CTL0 = UCMODE_0;//串口模式 UCA0CTL1 = UCSSEL_2;//SMCLK P3OUT &= ~(BIT4+BIT5);//低电平 P3SEL |= BIT4+BIT5;//串口 } 2.串口设置 串口设置包括波特率、校验位、数据位、停止位等内容; UCAxCTL0寄存器: UCPEN:使能校验位; UCPAR:设置校验方
[单片机]
MSP430f2619学习—<font color='red'>串口</font>通信
高速DSP与PC实现串口通信的方法
数字信号处理器(Digital Signal Processor,DSP)在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广泛的应用,实际运用中,通常须将DSP采集处理后的数据传送到PC机,然后进行存储和处理。 T1公司的TMS320VC33微处理器具有性价比高,同时,该芯片的I/O电平、字长、运行速度、串口功能具有大多数DSP的共同特点。本文针对TMS320VC33与PC RS-232的通讯,分析三种具体的接口电路和软件设计方法,实现高速DSP与低速设备的通讯:①通过TMS320VC33的通用I/O口实现通信;②通过TMS320VC33中可设置为通用I/O的串行引脚实现通信;③直接利用TMS320VC33的串
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved