请选择 进入手机版 | 继续访问电脑版
查看: 228|回复: 6

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

[复制链接]

该用户从未签到

14

主题

58

帖子

0

蝴蝶豆

中级会员

最后登录
2019-1-17
发表于 2019-1-11 17:31:11 | 显示全部楼层 |阅读模式
本帖最后由 西奥伟 于 2019-1-14 13:50 编辑

请教一下大家,就是我现在做的项目是一个电源管理控制的项目,想要实现电量检测功能,并且,同时还可以处理其他任务,例如:我插入usb充电以后,通过串口向上位机上报电量值的情况,并且,还能够在充电的时候,通过串口上传给APP命令,控制打开与关闭对应的模块,现在,我是在主函数的while循环中检测的充电,和串口端接收上位机发送下来的指令控制,但是,我上报电量是每隔10s,通过串口上报给上位机电量值,这样会影响到我通过串口接收上位机下发的指令,有时候,会造成我接收不到数据。想咨询一下大家,怎么通过逻辑上来解决这个问题?
8.png
  ST全新域名已上线,大家奔走相告>>                    
回复

使用道具 举报

该用户从未签到

64

主题

1136

帖子

138

蝴蝶豆

论坛元老

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

使用道具 举报

该用户从未签到

14

主题

58

帖子

0

蝴蝶豆

中级会员

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

我是使用的HAL库的中断发送与接收函数的
  ST全新域名已上线,大家奔走相告>>                    
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

29

帖子

0

蝴蝶豆

初级会员

最后登录
2019-1-19
发表于 2019-1-12 15:52:41 | 显示全部楼层
要不试试RTOS
回复 支持 反对

使用道具 举报

该用户从未签到

14

主题

58

帖子

0

蝴蝶豆

中级会员

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

RAM空间不允许了
  ST全新域名已上线,大家奔走相告>>                    
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

14

帖子

0

蝴蝶豆

新手上路

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

使用道具 举报

该用户从未签到

14

主题

58

帖子

0

蝴蝶豆

中级会员

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

嗯嗯,谢谢指点,我使用的是232的,现在正在考虑由上位机主动来读取电量值
  ST全新域名已上线,大家奔走相告>>                    
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

GMT+8, 2019-1-20 09:42 , Processed in 0.090868 second(s), 9 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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