搜索
查看: 1692|回复: 6

[已解决] STM32中多任务处理的逻辑问题

[复制链接]

该用户从未签到

21

主题

87

帖子

15

蝴蝶豆

高级会员

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

使用道具 举报

该用户从未签到

64

主题

1138

帖子

140

蝴蝶豆

论坛元老

最后登录
2020-12-3
发表于 2019-1-11 17:56:09 | 显示全部楼层
用中断接收就行了。这样即使上报,也可以收到上位机的数据。

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

21

主题

87

帖子

15

蝴蝶豆

高级会员

最后登录
2020-12-2
 楼主| 发表于 2019-1-11 22:11:49 | 显示全部楼层
黑皮男 发表于 2019-1-11 17:56
用中断接收就行了。这样即使上报,也可以收到上位机的数据。

我是使用的HAL库的中断发送与接收函数的
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

274

帖子

23

蝴蝶豆

金牌会员

最后登录
2021-7-11
发表于 2019-1-12 15:52:41 | 显示全部楼层
要不试试RTOS

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

21

主题

87

帖子

15

蝴蝶豆

高级会员

最后登录
2020-12-2
 楼主| 发表于 2019-1-12 17:14:03 | 显示全部楼层

RAM空间不允许了
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

117

帖子

17

蝴蝶豆

高级会员

最后登录
2022-5-23
发表于 2019-1-14 09:36:07 | 显示全部楼层
首先你的串口是232还是485通信,232双工,485单的,如果是485可能会出现CPU和上位机同时发送,这样就会造成通信失败,其次我觉得你可以改成上位机主动来读取电量,这样可以避免冲突,不然就是上位机在你上报信息这个时间点做标志,不要再发信息,等你上报完成再发。

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

21

主题

87

帖子

15

蝴蝶豆

高级会员

最后登录
2020-12-2
 楼主| 发表于 2019-1-14 13:46:26 | 显示全部楼层
斯文人 发表于 2019-1-14 09:36
首先你的串口是232还是485通信,232双工,485单的,如果是485可能会出现CPU和上位机同时发送,这样就会造成 ...

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

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-19 17:31 , Processed in 0.214360 second(s), 47 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表