打印
[STM8]

数据的处理该在哪里做

[复制链接]
2079|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 | 只看该作者
这个要根据实际的情况综合考虑的。比如处理数据的运算量,对通讯实时性的要求等

使用特权

评论回复
5
Mozarts| | 2021-9-11 12:34 | 只看该作者
中断快进快出,做个标记,在对应线程处理记好了。

使用特权

评论回复
6
Listate| | 2021-9-11 12:37 | 只看该作者
按照你说的,对时间要求没那么严格就直接是一个个发一个个处理,比较简单,如果是三个一起发,并且等待到回复,可以使用操作系统的事件标志组。。。

使用特权

评论回复
7
feiqi1| | 2021-9-11 12:40 | 只看该作者
一般的处理都是主函数里面。

使用特权

评论回复
8
androidbus| | 2021-9-11 12:43 | 只看该作者
中断内处理没有问题的。

使用特权

评论回复
9
litengg| | 2021-9-11 22:42 | 只看该作者
能不能粘贴一下代码看是什么问题。

使用特权

评论回复
10
qiangweii| | 2021-9-11 22:45 | 只看该作者
影响其他部分的运行就麻烦了。

使用特权

评论回复
11
shashaa| | 2021-9-11 22:48 | 只看该作者
个人推荐使用中断外运行。

使用特权

评论回复
12
xia00| | 2021-9-11 22:51 | 只看该作者
可以使用标志位进行处理的。

使用特权

评论回复
13
hfdy01| | 2021-9-11 22:53 | 只看该作者
采集数据后,在定时器中断里面进行处理。

使用特权

评论回复
14
CallReceiver| | 2021-9-11 22:55 | 只看该作者
楼主要使用地什么芯片呢?

使用特权

评论回复
15
boy1990| | 2021-9-11 22:57 | 只看该作者
串口的DMA的效果非常不错。

使用特权

评论回复
16
sourceInsight| | 2021-9-11 22:59 | 只看该作者
如果计算量很小,完全可以在中断里面进行。

使用特权

评论回复
17
bbapple| | 2021-9-11 23:01 | 只看该作者
串口的DMA的效果非常不错。

使用特权

评论回复
18
handleMessage| | 2021-9-11 23:05 | 只看该作者
不是很清楚这样度不一的数据在使用dma的时候该怎么搞.

使用特权

评论回复
19
zhouhuanの| | 2021-9-11 23:07 | 只看该作者
dma常见的应用都是传输固定长度的数据,不同长度的没试过。

使用特权

评论回复
20
coshi| | 2021-10-5 20:20 | 只看该作者
可以在中断中调用另外一个函数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

220

主题

1411

帖子

1

粉丝