[STM8] 数据的处理该在哪里做

[复制链接]
2544|20
 楼主| wanglaojii 发表于 2021-9-11 11:58 | 显示全部楼层 |阅读模式
单片机和上位机通信,单片机接收实在中断内。我想问的是数据的处理该在哪里做,我以前在中断内处理,感觉太影响其他部分的运行了。

有三条保存在本地数据要发给上位机,如果上位机回复收到,本地就删除数据。发送在主函数,接收在中断,接收解析在主函数。
请问一般是三条同发,然后收到三个回复,然后处理这三个回复?
laozhongyi 发表于 2021-9-11 12:26 | 显示全部楼层
为了确保稳定性,主函数内发送部分是定时工作,几秒钟一次,而且每次只发一条,好让收到的回复在主函数接收部分做完处理。
Edisons 发表于 2021-9-11 12:29 | 显示全部楼层
请教收发和处理方面,应该这么做才好?
_gege 发表于 2021-9-11 12:31 | 显示全部楼层
这个要根据实际的情况综合考虑的。比如处理数据的运算量,对通讯实时性的要求等
Mozarts 发表于 2021-9-11 12:34 | 显示全部楼层
中断快进快出,做个标记,在对应线程处理记好了。
Listate 发表于 2021-9-11 12:37 | 显示全部楼层
按照你说的,对时间要求没那么严格就直接是一个个发一个个处理,比较简单,如果是三个一起发,并且等待到回复,可以使用操作系统的事件标志组。。。
feiqi1 发表于 2021-9-11 12:40 | 显示全部楼层
一般的处理都是主函数里面。
androidbus 发表于 2021-9-11 12:43 | 显示全部楼层
中断内处理没有问题的。
litengg 发表于 2021-9-11 22:42 | 显示全部楼层
能不能粘贴一下代码看是什么问题。
qiangweii 发表于 2021-9-11 22:45 | 显示全部楼层
影响其他部分的运行就麻烦了。
shashaa 发表于 2021-9-11 22:48 | 显示全部楼层
个人推荐使用中断外运行。
xia00 发表于 2021-9-11 22:51 | 显示全部楼层
可以使用标志位进行处理的。
hfdy01 发表于 2021-9-11 22:53 | 显示全部楼层
采集数据后,在定时器中断里面进行处理。
CallReceiver 发表于 2021-9-11 22:55 | 显示全部楼层
楼主要使用地什么芯片呢?
boy1990 发表于 2021-9-11 22:57 | 显示全部楼层
串口的DMA的效果非常不错。
sourceInsight 发表于 2021-9-11 22:59 | 显示全部楼层
如果计算量很小,完全可以在中断里面进行。
bbapple 发表于 2021-9-11 23:01 | 显示全部楼层
串口的DMA的效果非常不错。
handleMessage 发表于 2021-9-11 23:05 | 显示全部楼层
不是很清楚这样度不一的数据在使用dma的时候该怎么搞.
zhouhuanの 发表于 2021-9-11 23:07 | 显示全部楼层
dma常见的应用都是传输固定长度的数据,不同长度的没试过。
coshi 发表于 2021-10-5 20:20 | 显示全部楼层
可以在中断中调用另外一个函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

220

主题

1411

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部