//First look at 51
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
UsartReceive[UsartReadCnt] = SBUF;
UsartReadCnt++;
if(UsartReadCnt > ReadLength-2) //Prevent overflow
{
UsartReadCnt = 0;
}
}
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = (65536 - 5000) / 256;
TL0 = (65536 - 5000) % 256; //timing 5ms
if(UsartReadCnt != 0) //Received data
{
if(UsartIdleCnt == UsartReadCnt)
{
UsartReadCntCopy = UsartReadCnt;
UsartReadCnt = 0;
UsartIdleCnt = 0;
UsartFlag = 1;
}
else
{
UsartIdleCnt = UsartReadCnt;
}
}
}
...
if(UsartFlag == 1)
{
UsartFlag = 0;
...
}
...
//STM32
void USART1_IQRHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//Indicates that data has been received
{
Usart1ReadBuff[Usart1ReadCnt++] = USART_ReceiveData(USART1);
if(Usart1ReadCnt > UsartReadLen - 10)
{
Usart1ReadCnt = 0;
}
}
}
void TIM2_IRQHandler(void)
{
if(TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
{
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
if(Usart1ReadCnt != 0)
{
if(Usart1ReadCnt == Usart1IdleCnt)
{
Usart1ReadCntCpoy = Usart1ReadCnt;
Usart1ReadCnt = 0;
Usart1IdleCnt = 0;
Usart1ReadFlag = 1;
}
}
}
}
...
if(Usart1ReadFLag == 1)
{
Usart1ReadFlag = 0;
...
}
...
Previous article:LCD1602 Example
Next article:Tips for 51 timer configuration PWM
- Popular Resources
- Popular amplifiers
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
- Does leaving the charger plugged into the socket consume electricity?
- Choosing the Right RF Transceiver IC
- Let’s talk about understanding diode parameters. What key parameters do engineers need to know when designing?
- Common impedance matching methods
- Application of digital control system in smart home field
- Python surpasses Java to become the second most popular language on GitHub
- I have posted a post about 1588BS dot matrix before. This is the follow-up, which is about 51 single chip microcomputer.
- Lesson 1: Talking about IoT and 5G
- 8 dynamic parameters of digitizer
- [RT-Thread reading notes] Use on STM32F051