请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32中多任务处理的逻辑问题

[复制链接]
西奥伟 提问时间:2019-1-11 17:31 /
请教一下大家,就是我现在做的项目是一个电源管理控制的项目,想要实现电量检测功能,并且,同时还可以处理其他任务,例如:我插入usb充电以后,通过串口向上位机上报电量值的情况,并且,还能够在充电的时候,通过串口上传给APP命令,控制打开与关闭对应的模块,现在,我是在主函数的while循环中检测的充电,和串口端接收上位机发送下来的指令控制,但是,我上报电量是每隔10s,通过串口上报给上位机电量值,这样会影响到我通过串口接收上位机下发的指令,有时候,会造成我接收不到数据。想咨询一下大家,怎么通过逻辑上来解决这个问题?
8.png
收藏 评论6 发布时间:2019-1-11 17:31

举报

6个回答
黑皮男 回答时间:2019-1-11 17:56:09
用中断接收就行了。这样即使上报,也可以收到上位机的数据。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

西奥伟 回答时间:2019-1-11 22:11:49
黑皮男 发表于 2019-1-11 17:56
用中断接收就行了。这样即使上报,也可以收到上位机的数据。

我是使用的HAL库的中断发送与接收函数的
3111272 回答时间:2019-1-12 15:52:41
要不试试RTOS

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

西奥伟 回答时间:2019-1-12 17:14:03

RAM空间不允许了
ikxlf 回答时间:2019-1-14 09:36:07
首先你的串口是232还是485通信,232双工,485单的,如果是485可能会出现CPU和上位机同时发送,这样就会造成通信失败,其次我觉得你可以改成上位机主动来读取电量,这样可以避免冲突,不然就是上位机在你上报信息这个时间点做标志,不要再发信息,等你上报完成再发。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

西奥伟 回答时间:2019-1-14 13:46:26
斯文人 发表于 2019-1-14 09:36
首先你的串口是232还是485通信,232双工,485单的,如果是485可能会出现CPU和上位机同时发送,这样就会造成 ...

嗯嗯,谢谢指点,我使用的是232的,现在正在考虑由上位机主动来读取电量值

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版