当前位置:网站首页>STM32 enters and wakes up the stop mode through the serial port
STM32 enters and wakes up the stop mode through the serial port
2022-07-06 23:42:00 【Kay Note】
STM32 Have run 、 sleep 、 Stop and standby four working modes . After power on reset STM32 In operation , When the kernel doesn't need to continue running , You can choose to enter the following three low-power modes to reduce power consumption , Of the three models , Different power consumption 、 Wake up time is different 、 Different wake-up sources , We can according to different application requirements , Choose the best low-power mode .

Sleep mode :CM3 Kernel stop , The peripheral is still running , This power consumption is the highest .
Stop mode : All clocks stop , This power consumption is low , Typical is probably 20uA about .
Standby mode :1.8V Kernel power off , This power consumption is the lowest , Typical is probably 2uA about .
In the actual development and Application , Our commonly used low-power mode is stop mode , The wake-up mode is any external interrupt . This article mainly talks about waking up and entering the stop mode through the serial port , To realize the wake-up stop mode through the serial port , External interrupts are needed . Put the serial port Rx The pin is set to external interrupt , Rising edge trigger , In this way, the external interrupt will be triggered when the serial port receives data , This wakes up the stop mode . The relevant code is as follows
First, configure the serial port receiving end as an external interrupt :
/*************************************************
Function: void EXIT_UART_Init(void)
Description: External interrupt initialization
Calls:
Called By:
Input: nothing
Output: nothing
Return:
Others:
*************************************************/
void EXIT_UART_Init(void)
{
LL_EXTI_InitTypeDef EXTI_InitStruct = {0};
/* GPIO Portd Clock Enable */
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
/**/
LL_EXTI_SetEXTISource(LL_EXTI_CONFIG_PORTA, LL_EXTI_CONFIG_LINE3);
/**/
EXTI_InitStruct.Line_0_31 = LL_EXTI_LINE_3;
EXTI_InitStruct.LineCommand = ENABLE;
EXTI_InitStruct.Mode = LL_EXTI_MODE_IT;
EXTI_InitStruct.Trigger = LL_EXTI_TRIGGER_RISING;
LL_EXTI_Init(&EXTI_InitStruct);
/**/
LL_GPIO_SetPinPull(GPIOA, LL_GPIO_PIN_3, LL_GPIO_PULL_DOWN);
/**/
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_3, LL_GPIO_MODE_INPUT);
/* EXTI interrupt init*/
NVIC_SetPriority(EXTI2_3_IRQn, 1);
NVIC_EnableIRQ(EXTI2_3_IRQn);
}Then enable the relevant clock , Enter stop mode .
/*************************************************
Function: void enter_stop_mode(void)
Description: Enter stop mode
Calls:
Called By:
Input: nothing
Output: nothing
Return:
Others:
*************************************************/
void enter_stop_mode(void)
{
EXIT_UART_Init(); // Configure the serial port pin as an external interrupt
__HAL_RCC_PWR_CLK_ENABLE(); // Can make PER The clock
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); // Get into stop Pattern
}After wakeup in low power mode , The default system clock is HSI, So you need to reconfigure the system clock . For convenience, the operation of the reset system is directly used here , If you need to keep external in the actual project IO Port state unchanged , You cannot use the system reset command , You need to reconfigure the system clock and other peripheral clocks .
/*
************************************************************
* The name of the function : void exit_stop_mode(void)
*
* The functionality : System reset
*
* Entrance parameters : nothing
*
* Returns the parameter : nothing
*
* explain :
************************************************************
*/
void exit_stop_mode(void)
{
__set_FAULTMASK(1); // Turn off all interrupts
NVIC_SystemReset();
}边栏推荐
- Newsletter L Huobi ventures is in-depth contact with genesis public chain
- MySQL connected vscode successfully, but this error is reported
- 快讯 l Huobi Ventures与Genesis公链深入接洽中
- Example code of MySQL split string as query condition
- Master binary tree in one article
- Unity 颜色板|调色板|无级变色功能
- One minute to learn how to install the system, win7 XP, win10 and win11 become very simple
- PDF批量拆分、合并、书签提取、书签写入小工具
- Can online reload system software be used safely? Test use experience to share with you
- The important data in the computer was accidentally deleted by mistake, which can be quickly retrieved by this method
猜你喜欢

The problem of ASP reading Oracle Database

(1)长安链学习笔记-启动长安链

Use mitmproxy to cache 360 degree panoramic web pages offline

使用MitmProxy离线缓存360度全景网页

Up to 5million per person per year! Choose people instead of projects, focus on basic scientific research, and scientists dominate the "new cornerstone" funded by Tencent to start the application

B 站弹幕 protobuf 协议还原分析

每年 2000 亿投资进入芯片领域,「中国芯」创投正蓬勃
![[OFDM communication] OFDM system signal detection based on deep learning with matlab code](/img/a5/624860f6bd9be03ac8c1f61839fea2.png)
[OFDM communication] OFDM system signal detection based on deep learning with matlab code

MySQL connected vscode successfully, but this error is reported

If the request URL contains jsessionid, the solution
随机推荐
Win11怎么恢复传统右键菜单?Win11右键改回传统模式的方法
零代码高回报,如何用40套模板,能满足工作中95%的报表需求
Oracle对表进行的常用修改命令
Do you still have to rely on Simba to shout for a new business that is Kwai?
实现多彩线条摆出心形
What does security capability mean? What are the protection capabilities of different levels of ISO?
B站大佬用我的世界搞出卷積神經網絡,LeCun轉發!爆肝6個月,播放破百萬
Graphite document: four countermeasures to solve the problem of enterprise document information security
The important data in the computer was accidentally deleted by mistake, which can be quickly retrieved by this method
There are only two TXT cells in the ArrayExpress database. Can you only download the sequencing run matrix from line to ENA?
公链与私链在数据隐私和吞吐量上的竞争
[unmanned aerial vehicle] multi unmanned cooperative task allocation program platform, including Matlab code
MATLIB从excel表中读取数据并画出函数图像
Is the more additives in food, the less safe it is?
The same job has two sources, and the same link has different database accounts. Why is the database list found in the second link the first account
Experiment 5: common automation libraries
matplotlib画柱状图并添加数值到图中
Unity 颜色板|调色板|无级变色功能
The method of reinstalling win10 system is as simple as that
Today, I met a senior test developer from Tencent and saw the ceiling of the foundation