c语言串口接收队列,队列方法接收串口的数据

本文介绍了一种解决串口接收数据丢失问题的方法,通过使用队列结构来存储和处理串口接收的数据。定义了一个Usart_struct结构体,包含接收缓冲区、指针和计数器等成员,利用中断接收数据并更新队列,确保数据完整无遗漏。此外,还提供了一个函数用于从队列中取出数据进行进一步处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常在接收串口数据时,往往由于发送端发送数据量太快导致接收端无法完全接收发送过来的数据。原因是还没有来得

急处理数据,后面的数据已将前面数据覆盖。所以在处理此问题时,必须用队列的方式处理串口的数据。。即把接收数

据和处理数据分开处理。用缓冲的方法,如下。。

typedef struct

{

unsigned int  UsartRxbuf[1000]; //接收串口buf

unsigned int *Usart_IN;         //接收串口数据存入的地址

unsigned int *Usart_OUT;        //访问接收的串口数据时,访问此地址

unsigned int *Usart_start;      //接收串口buf的起始指针

unsigned int *Usart_end;        //接收串口buf的结束指针

unsigned int  usart_RX_cout;    //接收计数器

unsigned int  usart_TX_cout;    //处理计数器

}Usart_struct;

Usart_struct  usartstruct;

void usart_start(Usart_struct *pd)

{

pd->Usart_start = &(pd->UsartRxbuf[0]);

pd->Usart_end   = &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值