In software that is not part of the system, it is easy to achieve low power consumption mode using the RTC+STOP mode. However, in operating systems such as UCOS, it is a bit troublesome to achieve this mode. The biggest problem is that task switching cannot be controlled, and the program often runs away after being woken up.
First, put the dormant code segment in a low-priority task, which does not have to be the system's built-in idle task, but can also be a user-defined task with the lowest priority.
Second, add two instructions before and after the sleep code:
//================================================ ===================================
OSSchedLock(); //Disable task scheduling
while(1)
{
.....//Sleep code RTC+STOP
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
....//Judge whether to exit sleep mode
}
....//Reinitialize system clock and GPIO
....//OS_CPU_SysTickInit();//It is very important to reinitialize systick, otherwise it will run away
OSSchedUnlock(); //Allow task scheduling
//================================================ ===================================
In fact, you only need to add two instructions to solve the task switching problem.
Previous article:STM32L0 low power design 5: actual power consumption in STOP_RTC mode
Next article:stm32 usart can only send once in DMA mode
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- The rated capacity of a CR17450 battery is 2300mAh. What does this 2300mAh mean?
- The Secret of Overcurrent/Overvoltage Protection for Sensitive Circuits
- What does a 5G base station look like? This article will help you find out!
- Help! Is there a suitable sensor?
- [TI recommended course] TI development board to realize intelligent servo
- [RVB2601 Creative Application Development] Simulating UART 1
- When you have self-doubt, you can talk to your friends more often.
- High Speed Digital Design Handbook (Black Book)
- [Raspberry Pi 4B Review] Install the game system Lakka on Raspberry Pi 4 to play retro games
- [Atria Development Board AT32F421 Review] - TEST02 Initial FFT Test Results