关于如何提高串口收发的响应速度

埃和智能 2019-09-16 10:01:17
在通讯速率不改变的前提下,如何能提高从串口接收数据,分析数据,发送数据的响应速度呢?
因为接收的数据都有时序要求,不方便用多线程将收发分开,经常出现响应不及时的问题导致上位机要求重新连线,盼高人指点。
...全文
787 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
young_forever_zyq 2019-09-18
  • 打赏
  • 举报
回复
引用 2 楼 stherix的回复:
肯定要用多线程,有时序要求也没关系,收发之间互相不能干扰/阻塞 要么就让上位机增大超时时间 或者设计成二次响应的模式 即 收到数据立刻回应我收到数据了,但是可能要几秒/几十秒后才返回处理后的结果
楼主抱歉,接个楼了 大佬你好请教您指导关于串口通讯的问题。[爱心][爱心] 硬件环境:stm32F4做下位机,利用串口转USB芯片FT232与NUC小电脑通信,电脑运行Linux,qt写的上位机软件。 通讯速率:设置通信波特率2M,下位机每0.5ms上传一7字节长度数据帧。连续发送。 串口程序:用QT自带的串口类写的,链接串口读取函数和readyRead(),读取函数用的是readAll()。 问题描述:我用了程序执行时间函数gettimeofday()去查看串口数据读取情况,发现虽然我下位机是0.5ms上传一次数据,但是上位机70ms左右才读取一次串口数据,按道理下位机0.5ms上传一次,那么上位机readyRead()这应该0.5ms发送一次触发信号然后读取串口数据才对。 大佬如果知道任何可能的原因都望能指点一二,小弟在这不胜感激[卖萌][卖萌]
stherix 2019-09-17
  • 打赏
  • 举报
回复
肯定要用多线程,有时序要求也没关系,收发之间互相不能干扰/阻塞 要么就让上位机增大超时时间 或者设计成二次响应的模式 即 收到数据立刻回应我收到数据了,但是可能要几秒/几十秒后才返回处理后的结果
mouse_zhu 2019-09-16
  • 打赏
  • 举报
回复
串口线短点。波特率固定的情况下窗口传输速度也是固定的,你只能优化你的代码了

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧