Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DMA
ringbuffer
serial_V2
串口 DMA ringbuffer 接收有可能覆盖数据
发布于 2022-07-27 14:59:27 浏览:481
订阅该版
最近看了下串口驱动 v2,其中接收缓存区使用了 ringbuffer。 在使用 DMA 方式接收时,是直接用循环接收方式将数据直接写入 ringbuffer 指向的内存区中,在接收中断中(IDLE、或 DMA 中断)根据收到的数据长度,使用 rt_serial_update_write_index 函数调整 ringbuffer 的写指针的位置。 rt_serial_update_write_index 函数里会判断需要调整的偏差值是否大于 ringbuffer 的空闲空间,如果大于,则最多只调整空闲空间这么多。 这里我感觉有个问题,DMA 接收的数据已经收到了,并且已经覆盖了原有的数据,就算写指针位置更新不会超过空闲空间数量,那后续的数据也已经不正确了。 不知道是不是我的理解有哪里不对,望大佬指教。
查看更多
出出啊
2022-07-27
致男人们:劝说是不会有成果的。 —— 《单向街》
有兴趣可以看看 serialX https://club.rt-thread.org/ask/article/bfd92159ba11aef6.html
4
个回答
默认排序
按发布时间排序
lchnu
2022-07-27
Witness, Understand, Skill
从设计的角度来说,rb的容量要大于DMA最长收到的数据的好几倍,处理线程在读取数据时才比较安全; 此外,你的读取线程也要保证能及时取走rb中的数据,才不至于rb中容量不够。 不过呢,rtt的rb的大小最多是signed short,有时候感觉不够用。
Acuity
2022-07-27
这家伙很懒,什么也没写!
如果你的ringbuf会被覆盖,说明你的程序有bug,或者整个系统设计不合理。串口这种低速总线,还能让buf写爆,很不合理。
伊森亨特
2022-07-31
这家伙很懒,什么也没写!
****你好,你用dma接收的时候,两针数据连在一起,有这种现象吗
撰写答案
登录
注册新账号
关注者
0
被浏览
481
关于作者
天狼八部
这家伙很懒,什么也没写!
提问
18
回答
32
被采纳
0
关注TA
发私信
相关问题
1
串口DMA发送数据时,数据被覆盖
2
关于串口DMA模式下rt_device_close问题
3
stm32L4 lpuart1DMA下不能打开的问题
4
UART驱动开启DMA后编译报错,UART DMA配置中加入了没有定义的域
5
UART DMA 设计问题
6
UART DMA 拆包问题
7
串口如何有效的清除掉接收缓冲,而不必一个一个的去读取
8
串口接收使用方式问题
9
在studio中打开串口的DMA后,编译出错
10
官方DMA串口例程,使用时数据打印错误
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
五分钟玩转RT-Thread新社区
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
6
国产MCU移植系列教程汇总,欢迎查看!
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用 D1s (RDC2022 纪念版) 连接 thingspeak
2
RTduino 初体验
3
stm32wle5 双SRAM使用
4
开工大吉 | 借RT-Thread的论坛宝地,给各位嵌入式开发者送106块开发板!
5
随笔、FinSH原理浅析
热门标签
RT-Thread Studio
串口
LWIP
SPI
Env
AT
FinSH
ART-Pi
Bootloader
CAN总线
Hardfault
文件系统
USB
DMA
RT-Thread
线程
stm32
RT-Thread Nano
SCons
MQTT
ESP8266
ota
packages_软件包
UART
rtthread
RTC
freemodbus
I2C
flash
cubemx
W5500
rt-smart
定时器
FAL
rtt
PWM
ADC
BSP
SDIO
msh
AB32VG1
Debug
C++_cpp
socket
SFUD
中断
编译报错
MicroPython
keil
LVGL
本月问答贡献
出出啊
1424
个答案
315
次被采纳
小小李sunny
1326
个答案
262
次被采纳
crystal266
488
个答案
144
次被采纳
whj467467222
1210
个答案
141
次被采纳
张世争
581
个答案
131
次被采纳
本月文章贡献
出出啊
4
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
crystal266
1
篇文章
1
次点赞
whj467467222
2
篇文章
2
次点赞
张世争
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部