电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
如何优化用while的查询阻塞延时
已解决
73482
个问题
已帮助
5993
位优秀工程师
如何优化用while的查询阻塞延时
_落雪千寒灬
2018-04-16
浏览量:1055
串口发送会有这样的阻塞延时,发送字节多的时候对系统的实时性影响大,改成中断又不好控制,除了串口发送外,还有些模块也会用这样的查询阻塞延时,有没什么好的方法优化掉 还有大概多长时间的阻塞延时是可以接受的
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
sgf201
中断好控制呀,其实一直不解的是为啥单片机程序里发送都是用等待,有FIFO的话用中断还是很简单的,我之前用51都是自己先把串口收发改成中断方式,自己建立一个手动的FIFO,做一做这个工作吧,对于编程能力是个提高,也能丰富下对阻塞设备的处理技能,和串口类似的设备很多的。
发布于
2018-04-16
举报
评论 0
0
0
其他答案
数量:
11
xdsnet
一般这样的发生程序都会以缓存方式发送吧,就是定义一个标准长度的缓存,每次最多发送这么多,然后等待下次轮询到。
发布于
2018-04-16
举报
评论 0
0
0
robe_zhang
可以考虑 dma 的方式,需要 cpu 参与的比较少
发布于
2018-04-16
举报
评论 0
0
0
汉云
使用DMA,在要发送时,配置一下DMA的发送的字节数,DMA发送完成后,不再发送,即DAM设置为手动触发模式
发布于
2018-04-16
举报
评论 0
0
0
@曲终人散@
你不想while等,可以结合定时器来延时,这样就在不用等了
发布于
2018-04-16
举报
评论 0
0
0
我是爆米花啊
可以使用DMA,也可以使用嵌入式实时系统,让系统调度,给予重要的任务更高优先级。
发布于
2018-04-16
举报
评论 0
0
0
yhj416606438
用DMA可以手动控制大不了数据丢失但不会阻塞
发布于
2018-04-16
举报
评论 0
0
0
一笔之名也
使用DMA,再加上使用DMA中断,就可以达到比较高的实时性了。
发布于
2018-04-16
举报
评论 0
0
0
lichangle
自己定义一个收发缓存吧,这样就好控制了
发布于
2018-04-17
举报
评论 0
0
0
Linux小学童
还是中断好用点。如果要用while,对收发的计算要精确点,尽量减少无效等待时间;建立收发缓存,不用经常性的去询问。
发布于
2018-04-17
举报
评论 0
0
0
明有几时有
可以中断中只是设置一个标志位,而在while中进行数据处理
发布于
2018-04-23
举报
评论 0
0
0
donatello
串口发送的话用寄存器方式进行操作会节省很多时钟周期,不过串口发送数据也是需要等待时间的,发送的东西越多等待时间越长,楼主要节省时间就尽量发少一点内容。
发布于
2018-04-26
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
如何优化用while的查询阻塞延时
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: