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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版