```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
+关注
关注
2313文章
11195浏览量
374671 -
代码
+关注
关注
30文章
4976浏览量
74388 -
RK3588
+关注
关注
8文章
589浏览量
7558
发布评论请先 登录
瑞芯微RK3588 RKNN模型推理环境部署与功能测试技巧(上)
RK3588 Type-C一线通,DP显示输出实战指南
RK3588的GMAC 时钟怎么一直没有?
RK3588操控终端
C语言的缓冲区(缓存)详解
【技术分享】RK3588如何搭建xenomai3+ethercat
CW32L052串口的缓冲区机制
瑞芯微RK3588与RK3576技术参数详解
RK这2款旗舰芯片RK3588 PK RK3576,谁是最优选
OpenHarnomy5.1下对RK3588的编译环境搭建
RK3576 vs RK3588:为何越来越多的开发者转向RK3576?
RK3588S和RK3588S2差异说明
Stm32采用环形缓冲区接收rk3588的数据代码
评论