STM32
登录
直播中
其实znvm
8年用户
1215经验值
擅长:电源/新能源
私信
关注
[问答]
stm32+djyos下串口缓冲区如何配置?
开启该帖子的消息推送
STM32
STM32
+djyos下串口缓冲区如何配置?
回帖
(1)
石栓柱
2021-12-7 14:00:42
就这行简单代码:
write(UartFd,DataBuf,100);
执行时间有时候长,有时候短,直接影响了后续代码的执行,why?
进一步了解到,用户发送数据,是间歇式的,连续发完一组数据后,会间歇比较长的一段时间,每组数据,会分好多次write发送,总共大概几百字节。
带着这个问题,我们来谈谈通信缓冲区,顾名思义,缓冲区是用来调和CPU运行速度和通信端口速度的,缓冲区设置不足,缓冲作用就会打折扣,设置过大,则浪费内存空间。该用户使用stm32f767+djyos,地球人都知道,stm32f767跑起来有多快,而串口通信有多慢,用户的问题,其实就是缓冲区设置的问题。
djyos的串口设备,都有一个环形缓冲区,write时,如果buffer有空闲空间,则把数据copy到buffer中,然后返回;如果buffer没有空间,则阻塞等待buffer空闲。write函数执行时间,与调用时buffer是否有足够的空间有关,由于用户发送的间歇性,只要buffer能够容纳一组数据就不会有问题。打开djyos的图形化配置界面,检查其工程配置,果然发现其发送缓冲区只配置了128字节,改成512后,问题解决。
欢迎转载,转载注明出处。
就这行简单代码:
write(UartFd,DataBuf,100);
执行时间有时候长,有时候短,直接影响了后续代码的执行,why?
进一步了解到,用户发送数据,是间歇式的,连续发完一组数据后,会间歇比较长的一段时间,每组数据,会分好多次write发送,总共大概几百字节。
带着这个问题,我们来谈谈通信缓冲区,顾名思义,缓冲区是用来调和CPU运行速度和通信端口速度的,缓冲区设置不足,缓冲作用就会打折扣,设置过大,则浪费内存空间。该用户使用stm32f767+djyos,地球人都知道,stm32f767跑起来有多快,而串口通信有多慢,用户的问题,其实就是缓冲区设置的问题。
djyos的串口设备,都有一个环形缓冲区,write时,如果buffer有空闲空间,则把数据copy到buffer中,然后返回;如果buffer没有空间,则阻塞等待buffer空闲。write函数执行时间,与调用时buffer是否有足够的空间有关,由于用户发送的间歇性,只要buffer能够容纳一组数据就不会有问题。打开djyos的图形化配置界面,检查其工程配置,果然发现其发送缓冲区只配置了128字节,改成512后,问题解决。
欢迎转载,转载注明出处。
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32
什么是
STM32
环形
缓冲区
?
2021-11-18
856
labview中 关于
串口
缓冲区
的问题
2015-10-17
16107
请问
串口
的DMA接收
缓冲区
是不是环形
缓冲区
2022-08-30
1294
STM32
串口
环形
缓冲区
的实现方法
2020-12-24
1897
STM32
环形
缓冲区
怎么实现?
2021-12-07
918
怎么实现
串口
环形
缓冲区
?
2021-12-06
1375
STM32
F103的USART3
串口
DMA接收
缓冲区
发生错误的原因
2021-12-09
1795
摄像头采集到的数据远远超过了发送
缓冲区
的数据,可以不用
缓冲区
吗?
2017-11-05
5091
STM32
从队列到
串口
缓冲区
的代码该如何去实现呢
2021-12-08
1200
关于
串口
读取
缓冲区
的问题
2014-04-16
9509
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分