Stm32采用环形缓冲区接收rk3588的数据代码

发布者:MoonlightStar最新更新时间:2024-09-19 来源: elecfans关键字:Stm32  环形缓冲区 手机看文章 扫描二维码
随时随地手机看文章

```c
#include 'stm32f10x.h'
#include 'usart.h'
#include 'ring_buffer.h'

#define BUFFER_SIZE 128

uint8_t buffer[BUFFER_SIZE]; // 定义一个大小为128的缓冲区
ring_buffer_t ring_buffer; // 定义一个环形缓冲区结构体

void USART1_IRQHandler(void)
{
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) // 判断是否接收到数据
{
uint8_t data = USART_ReceiveData(USART1); // 读取接收到的数据
ring_buffer_push(&ring_buffer, data); // 将数据压入环形缓冲区
}
}

int main(void)
{
SystemInit(); // 系统初始化
USART1_Config(); // 配置USART1
ring_buffer_init(&ring_buffer, buffer, BUFFER_SIZE); // 初始化环形缓冲区

while (1)
{
if (!ring_buffer_is_empty(&ring_buffer)) // 判断环形缓冲区是否为空
{
uint8_t data = ring_buffer_pop(&ring_buffer); // 从环形缓冲区中取出数据
// 处理接收到的数据
}
}
}
```


关键字:Stm32  环形缓冲区 引用地址:Stm32采用环形缓冲区接收rk3588的数据代码

上一篇:STM32入门学习笔记之USART驱动实验(上)
下一篇:STM32F10x中一些专业术语解释

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

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved