首页 > 其他分享 >stm32串口接受定长和不定长数据的两种中断方式

stm32串口接受定长和不定长数据的两种中断方式

时间:2024-07-08 13:19:02浏览次数:19  
标签:HAL 字节 中断 stm32 UART 定长 串口 USART3 函数

stm32串口有两种中断方式

1.字节中断(定长数据接受)

接收指定字节数的数据后产生中断:

HAL_UART_Receive_IT(&huart3, rxBuffer,21);

注意这里仍然是接受一个字节进入一次IRQ中断函数,这里指定的字节数指的是接受指定字节数量后进入一次回调函数,由于IRQ函数会关闭中断,如需重复接受定长数据须在IRQ函数中刷新中断

void USART3_IRQHandler(void)
{
  /* USER CODE BEGIN USART3_IRQn 0 */
	//HAL_UART_IRQHandler函数会清空中断标志,取消中断使能,并间接调用回调函数
  /* USER CODE END USART3_IRQn 0 */
  HAL_UART_IRQHandler(&huart3);
  /* USER CODE BEGIN USART3_IRQn 1 */
	HAL_UART_Receive_IT(&huart3, (uint8_t *)&rxBuffer,2);  //每接受一个字节进入一次中断 每接受两个字节进入一次回调函数
  /* USER CODE END USART3_IRQn 1 */
}

2.空闲中断(不定长数据接受) 

stm32早期使用cubemx生成的hal库文件中,没有空闲中断的选项,需要另外改造

后面hal库更新之后 可以使用库函数直接处理空闲中断

HAL_UARTEx_ReceiveToIdle_IT(&huart1,serial.Rx_Data_Buf,1024);

以激活中断

重定义

void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)

 

https://blog.csdn.net/qq_40932099/article/details/118423684

标签:HAL,字节,中断,stm32,UART,定长,串口,USART3,函数
From: https://www.cnblogs.com/aker-whale/p/18288462

相关文章

  • STM32标准库函数功能简介————GPIO篇
    1.void GPIO_DeInit (GPIO_TypeDef*GPIOx);函数解释:将指定的GPIO端口恢复到默认设置。2.voidGPIO_AFIODeInit(void);函数解释:将外设映射设置恢复为默认状态,以重新初始化外设映射配置。3.voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct);函数......
  • STM32简介
    STM32简介一、单片机单片机(MicrocontrollerUnit,MCU)是一种集成电路芯片,它将微处理器(CPU)、存储器(如RAM和ROM)、输入/输出接口(I/O)、定时器、中断系统、通讯接口等电脑常用硬件功能集成在单一的硅片上,形成一个微型的计算机系统。单片机的任务是采集信息(依靠传感器)、处理信息(依......
  • Linux驱动之利用STM32、设备树、pwm子系统实现风扇的分级调控
    Linux驱动之利用STM32、设备树、pwm子系统实现风扇的分级调控系统:Linux5.10.61开发板:STM32mp157a硬件:风扇一、首先我们需要对PWM和定时器(TIM)的联系简单的做一下了解,具体详细的PWM原理可见PWM原理PWM频率与占空比详解。​PWM(脉宽调制)和TIM(定时器)在嵌入式系统中有着......
  • 通信方式中常用的串口,你真的了解么?
    串口介绍一、引言串行接口(SerialPort),简称串口,是计算机与外部设备或其他计算机之间进行数据交换的一种通信接口。与并行通信相比,串行通信通过一条或几条信号线按顺序传输数据,具有接口简单、传输距离长等优点。串口在计算机历史中占据了重要位置,即便在今天,许多工业控制系统、......
  • 串口电平多种,TLL、232、485、422到底应该如何选择?
    串口通信是电子设备之间进行数据交换的重要方式,其中常见的电平标准包括TTL电平、RS-232电平、RS-485电平和RS-422电平。本文将详细介绍这些电平的由来、原理、特点、优缺点、应用、实现方式及接线方式,帮助各位同学或工程师更好地理解这些通讯基础。TTL电平TTL(Transistor......
  • STM32第十七课:连接云平台进行数据传输
    目录需求一、云平台项目创建二、代码编写1.导入MQTT包2.连接阿里云3.发布数据三、关键代码总结需求1.通过生活物联网平台设计一个空气质量检测仪app。2.连接阿里云平台将硬件数据传输到云端,使手机端能够实时收到。一、云平台项目创建先进入阿里云生活服务平台......
  • stm32串口 环形缓冲区 代码
    voidHAL_UART_RxCpltCallback(UART_HandleTypeDef*huart){ //printf("ITIN\r\n");// printf("%d\r\n",HAL_GetTick()); //置零设定电流值PID时间if(huart->Instance==USART3){ //将数据放入缓冲区 circular_buffer.buffe......
  • STM32学习——输出比较和输入捕获
    目录一、输出比较1.什么是输出比较2.PWM波的基本参数3.输出比较通道框图4.输出比较模式5.基本结构/步骤6.Keil5代码二、输入捕获1.什么是输入捕获2.输入捕获通道测量频率的方法3.输入捕获结构框图4.主从触发模式5.输入捕获和PWMI模式框图6.Keil5代码一、输出......
  • 【STM32】RTT-Studio中HAL库开发教程二:RS485-DMA串行通信
    文章目录一、前期准备二、实验步骤1.使用STM32CubeMX配置初始化代码2.常用函数解析3.相关程序4.实验效果三、参考文章一、前期准备开发环境:基于RT-ThreadStudio软件的开发辅助软件:STM32CubeMX初始化代码生成调试软件:串口助手使用芯片:STM32F407VET6硬件环......
  • 零基础STM32单片机编程入门(八)定时器PWM输入实战含源码视频
    文章目录一.概要二.PWM输入框架图三.CubeMX配置一个PWM输入例程1.硬件准备2.创建工程3.调试四.CubeMX工程源代码下载五.讲解视频链接地址六.小结一.概要脉冲宽度调制(PWM),是英文“PulseWidthModulation”的缩写,简称脉宽调制,是利用单片机数字输出(1或0)来对外部模拟......