完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
就这行简单代码:
write(UartFd,DataBuf,100); 执行时间有时候长,有时候短,直接影响了后续代码的执行,why? 进一步了解到,用户发送数据,是间歇式的,连续发完一组数据后,会间歇比较长的一段时间,每组数据,会分好多次write发送,总共大概几百字节。 带着这个问题,我们来谈谈通信缓冲区,顾名思义,缓冲区是用来调和CPU运行速度和通信端口速度的,缓冲区设置不足,缓冲作用就会打折扣,设置过大,则浪费内存空间。该用户使用stm32f767+djyos,地球人都知道,stm32f767跑起来有多快,而串口通信有多慢,用户的问题,其实就是缓冲区设置的问题。 djyos的串口设备,都有一个环形缓冲区,write时,如果buffer有空闲空间,则把数据copy到buffer中,然后返回;如果buffer没有空间,则阻塞等待buffer空闲。write函数执行时间,与调用时buffer是否有足够的空间有关,由于用户发送的间歇性,只要buffer能够容纳一组数据就不会有问题。打开djyos的图形化配置界面,检查其工程配置,果然发现其发送缓冲区只配置了128字节,改成512后,问题解决。 欢迎转载,转载注明出处。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 15:05 , Processed in 0.789215 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号