linux开机被串口刷屏,难题!!!处理连续不断的串口数据,如何提高系统实时性?...

本文介绍了如何处理Linux系统中因串口数据过快导致的开机刷屏问题,提出了使用环形队列(FIFO)作为缓冲策略。通过FIFO管理参数和中断服务函数实现数据的稳定读写,有效提高了系统实时性,防止数据丢失。同时提供了具体的FIFO读写函数及中断回调函数的示例代码。
摘要由CSDN通过智能技术生成

另外,必须是方案2.

环形队列,实际上就是做FIFO,很简单的.

给你我们阿波罗开发板录音机实验的FIFO代码:

[mw_shl_code=cpp,true]

u8 *sairecbuf1;                        //SAI1 DMA接收BUF1

u8 *sairecbuf2;                 //SAI1 DMA接收BUF2

//REC录音FIFO管理参数.

//由于FATFS文件写入时间的不确定性,如果直接在接收中断里面写文件,可能导致某次写入时间过长

//从而引起数据丢失,故加入FIFO控制,以解决此问题.

vu8 sairecfifordpos=0;        //FIFO读位置

vu8 sairecfifowrpos=0;        //FIFO写位置

u8 *sairecfifobuf[SAI_RX_FIFO_SIZE];//定义10个录音接收FIFO

FIL* f_rec=0;                        //录音文件

u32 wavsize;                        //wav数据大小(字节数,不包括文件头!!)

u8 rec_sta=0;                        //录音状态

//[7]:0,没有开启录音;1,已经开启录音;

//[6:1]:保留

//[0]:0,正在录音;1,暂停录音;

//读取录音FIFO

//buf:数据缓存区首地址

//返回值:0,没有数据可读;

//      1,读到了1个数据块

u8 rec_sai_fifo_read(u8 **buf)

{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值