OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3051|回复: 3

关于STM8L152的halt模式问题

[复制链接]

10

主题

31

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-4-18
在线时间
41 小时
发表于 2020-5-28 16:58:52 | 显示全部楼层 |阅读模式
10金钱
平台:EWSTM8 3.10.4版
芯片:STM8L152C8T6
问题:
一、当执行佳信微公司的蓝牙模块JDY-23 AT指令睡眠(AT+SLEEP2)后,在死循环中执行asm(“halt”)模式蓝牙将不会进入深度睡眠。
二、同样执行该模块睡眠指令后,在死循环中执行asm(“wfi”),蓝牙将进入睡眠状态。其实只要不执行hlat语句,蓝牙都会休眠。
起初,我以为STM8L系列的单片机halt模式会自动将所有IO口电平拉低,因为该蓝牙模块依靠其中一个引脚的下降沿信号唤醒,但是我将该引脚一直保持低电平后,halt模式同样会造成蓝牙无法休眠。
如果要问如何解决二者的矛盾,相信这个问题太过冷门。因此,我只想问一下有没有人知道,STM8L执行halt指令后,它内部究竟在执行什么程序?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-5-29 01:18:47 | 显示全部楼层
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-5-6
在线时间
3 小时
发表于 2020-5-29 14:26:35 | 显示全部楼层
我是这样配置的:
首先GPIO_Init(GPIOA, GPIO_Pin_All,  GPIO_Mode_In_FL_No_IT);  //PB,PC,PD,PE,PF都是这样
如果是纯高低电平的话:用到的引脚拉高,不用的引脚拉低: 比如:
GPIO_Init(GPIOB, GPIO_Pin_All,  GPIO_Mode_In_FL_No_IT);
GPIO_Init(GPIOB, GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3,  GPIO_Mode_Out_PP_Low_Slow);
GPIO_Init(GPIOB, GPIO_Pin_0,  GPIO_Mode_Out_PP_High_Slow);
然后其他的模块比如蓝牙模块,配置方式不变,我是在配置的函数中加入掉电指令。你可以试一下
回复

使用道具 举报

10

主题

31

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-4-18
在线时间
41 小时
 楼主| 发表于 2020-5-31 16:38:57 | 显示全部楼层
小汤圆 发表于 2020-5-29 14:26
我是这样配置的:
首先GPIO_Init(GPIOA, GPIO_Pin_All,  GPIO_Mode_In_FL_No_IT);  //PB,PC,PD,PE,PF都是 ...

现在我将蓝牙的复位引脚拉低让它一直复位,但是待机电流仍有146uA,不太理想。
我的主程序中只要执行halt指令,蓝牙模块“仿佛”就会被唤醒,会被我的手机APP监测到。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 14:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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