173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

stm32l431低功耗代码

keros@mark 2023-03-19 资讯中心

python电脑进入低功耗模式

问题出现时的系统状态或环境描述:

1、在RT-thread studio中加入了MicroPython组件,该组件解释器放在某个线程运行(这里是线程名称“thread9”)。该线程的静态栈是15kB,MicroPython组件的堆空间开辟了50KB。

2、自己原来写过的STM32L496的低功耗进入程序(其实是调用了RT-Thread的低功耗组件),在SHELL(也是msh\)下进入低功耗正常,恢复到正常工作模式也正常。(注:这个时候是使用exit()命令退出了MicroPython的REPL模式后的SHELL模式)。

3、进入MicroPython的REPL模式下,使用MicroPython的C扩展功能将上述进入低功耗程序封装成Python模块后并调用,可以正常进入低功耗模式,但恢复到正常模式时出现异常报错并死机。(注:在恢复到正常模式时其他线程已经恢复,只有“thread9”线程也是MicroPython解释器所在的线程导致了死机)

现把死机时截图如下:

上述图片出现了“hard fault on thread: thread9”的提示,也就是MicroPython组件所在的线程报错。自己也反复测试了,当从低功耗恢复到正常模式时,其他线程基本没问题,只要恢复到执行MicroPython解释器所在的线程时就出问题了。

想请教各位大神:

为什么恢复到MicroPython解释器线程时就出现硬件报错?

我要怎么修改?

或是进入低功耗前,要对MicroPython解释器做什么特殊处理?

stm32的3种低功耗模式(睡眠,停止,待机)各是什么时候使用,以前编程时没用到过

STM32 的低功耗模式有 3种: 1)睡眠模式(CM3内核停止,外设仍然运行) 2)停止模式(所有时钟都停止) 3)待机(standby)模式(1.8V内核电源关闭) 从待机模式唤醒后的代码执行等同于复位后的执行 进入Standby模式后,只能有Wake-up脚和RTC唤醒,特别是唤醒后,程序将从最开始运行,也就是相当于软件复位。

STM32单片机睡眠模式(或者其他低功耗模式也行)的代码,由串口1中断唤醒,唤醒后程序继续执行。

STM32教 程上有呀 ,如野火的教程,,配置好中断,只要一条语句即进入睡眠模式,然后由中断唤醒,执行指示灯闪烁程序:主程序如下:

int main(void)

{

/* 配置 led */

LED_GPIO_Config();

/* 配置exti中断 */

EXTI_Key_Config();

/* 配置串口为中断模式 */

USART1_Config();

printf("\r\n 野火ISO-MINI开发板,睡眠实验 \r\n");

while(1)

{

/* wait interrupt */

LED1( ON ); // 亮

Delay(0xFFFFF);

LED1( OFF ); // 灭

LED2( ON ); // 亮

Delay(0xFFFFF);

LED2( OFF ); // 灭

LED3( ON ); // 亮

Delay(0xFFFFF);

LED3( OFF ); // 灭

__WFI(); //进入睡眠模式,等待中断唤醒

}

}

static void Delay(__IO uint32_t nCount) //简单的延时函数

{

for(; nCount != 0; nCount--);

}

本文标签:stm32l431低功耗代码

产品列表
产品封装
友情链接