完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现在写代码一直会遇到这样的问题:单片机在处理某一个外设请求的时候,如何兼顾到其他的外设请求,简而言之就是单片机如何能高效地并行处理多个外设通信。不带操作系统。
比如:指纹模块和ZIGBEE模块。单片机发送一个<读系统基本参数>指令给指纹模块,然后指纹模块收到的话,发送回复包呀。我的单片机是应该等这个回复包呢,还是说去做别的事情呢。如果等着的话,就会丢掉其他外设的请求,比如说ZIGBEE模块的数据,而且效率特别差。如果不等而是去做其他事情,那这条指令有没有执行成功,或者说返回的数据包是不是对应我发送的指令包,都不能判断,发送和接收不能同步。不知道大家是怎么处理这种问题的呢,能不能说说,一直困扰着我。 |
|
相关推荐
6个回答
|
|
用状态机分时处理事件
|
|
|
|
感觉有点像握手的问题,但是因为没有操作系统,不能单独开一个任务去做这个事情。所以这个过程怎么才能做的可靠,而又不影响系统实时性?
|
|
|
|
首先,肯定不可能是并行,mcu是单线程的。然后,如果不用操作系统,那就不太好做,只能在一个循环处理了。建议学会用os
|
|
|
|
裸机做成状态机确实不错。
|
|
|
|
做成中断呀,任何事情都不能在里面等待结束
|
|
|
|
单片机不可能并行。
|
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
597浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:36 , Processed in 1.305591 second(s), Total 88, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号