首页 > 其他分享 >stm32串口 环形缓冲区 代码

stm32串口 环形缓冲区 代码

时间:2024-07-07 10:09:07浏览次数:18  
标签:CODE buffer stm32 UART USER 串口 缓冲区 USART3 circular

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{

	
//    printf("IT IN\r\n");
//	printf("%d \r\n",HAL_GetTick());
	//置零设定电流值 PID时间
    if (huart->Instance == USART3)  
        {
			 // 将数据放入缓冲区
			circular_buffer.buffer[circular_buffer.head] = rxBuffer[0];
			circular_buffer.head = (circular_buffer.head + 1) % BUFFER_SIZE;

			// 如果缓冲区满,则丢弃最早的数据
			if (circular_buffer.head == circular_buffer.tail) {
				circular_buffer.tail = (circular_buffer.tail + 1) % BUFFER_SIZE;
			}
        }
		
}

每接受一个字节的数据都触发一次中断

void USART3_IRQHandler(void)
{
  /* USER CODE BEGIN USART3_IRQn 0 */

  /* USER CODE END USART3_IRQn 0 */
  HAL_UART_IRQHandler(&huart3);
  /* USER CODE BEGIN USART3_IRQn 1 */
	HAL_UART_Receive_IT(&huart3, (uint8_t *)&rxBuffer,1);  //添加的一行代码
  /* USER CODE END USART3_IRQn 1 */
}

 

标签:CODE,buffer,stm32,UART,USER,串口,缓冲区,USART3,circular
From: https://www.cnblogs.com/aker-whale/p/18288231

相关文章

  • 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)来对外部模拟......
  • STM32封装ESP8266一键配置函数:实现AP模式和STA模式切换、服务器与客户端创建
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)STM32封装ESP8266一键配置函数:实现AP模式和STA模式切换、服务器与客户端创建......
  • STM32F1+HAL库+FreeTOTS学习6——临界段代码保护函数&任务调度器的挂起和恢复函数
    STM32F1+HAL库+FreeTOTS学习6——临界段代码保护函数临界段临界段代码保护函数任务调度器的挂起和恢复函数上一期我们学习了FreeRTOS的内核中断管理以及中断屏蔽控制函数,下面我们来学习临界端代码保护函数的使用临界段临界段也叫临界区,指的是必须完整运行完,不能被......
  • STM32F1+HAL库+FreeTOTS学习3——任务创建(动态和静态两种)
    STM32F1+HAL库+FreeTOTS学习3——任务创建(动态和静态两种)任务创建API函数任务创建流程代码实现1.动态任务创建和删除2.静态任务创建和删除上期我们学习了STM32移植FreeRTOS搭建基准工程,现在我们来学习任务创建任务创建API函数前面我们了解到,FreeRTOS相对于裸机......
  • 基于STM32F1系列,驱动L298N电机驱动板实现直流电机的启动、停止、调速功能
    一.L298N电机驱动板电源引脚VCC外接直流电源引脚,电压范围在5~35V之间GNDGND是接地引脚,连接到电源负极5V驱动芯片内部逻辑供电引脚,如果安装了5V跳帽,则此引脚可输出5V电压,为微控板或其他电路提供电力供给,如果拔掉5V跳帽,则需要独立外接5V电源控制引脚IN1&IN2电机驱动器......
  • STM32:ADC采集光照(含完整源码)
    需求通过ADC转换实现光照亮度的数字化测量,最后将实时测量的结果打印在串口上。一、ADC概要  ADC全称是Analog-to-DigitalConverter模数转换器,一般我们把模拟信号(Analogsignal)用A来进行简写,数字信号(digitalsignal)用D来表示。  自然界中绝大部分都是模拟信......
  • 基于STM32技术的物流分拣控制系统毕业设计
    基于STM32技术的物流分拣控制系统毕业设计摘要随着物流行业的快速发展,对分拣效率和准确性的要求日益提高。本文设计了一款基于STM32技术的物流分拣控制系统,旨在通过自动化和智能化手段,提高物流分拣的效率和准确性。该系统集成了STM32微控制器、传感器技术、电机驱动模块、无......
  • 基于STM32的车速检测系统设计毕业设计
    基于STM32的车速检测系统设计毕业设计摘要:随着汽车电子技术的快速发展和智能交通系统需求的日益增长,车速检测作为车辆状态监控的重要组成部分,其准确性和实时性对于提高行车安全、优化交通管理具有重要意义。本毕业设计旨在设计并实现一个基于STM32单片机的车速检测系统,该系统......