当前位置:网站首页>STM32 --- NVIC interrupt
STM32 --- NVIC interrupt
2022-07-05 08:15:00 【chen_ bx】
STM32---NVIC interrupt
brief introduction
CM3 The kernel support 256 A break , Which includes 16 Kernel interrupts and 240 External interrupts , And have 256 The programmable interrupt settings of the .STM32 Not used CM3 Everything about the kernel , It's just a part of it .STM32 Yes 84 A break , Include 16 Kernel interrupts and 68 Maskable interrupts , have 16 Level programmable interrupt priority .
STM32F103 Above the series , It's just 60 Maskable interrupts ( stay 107 The series has 68 individual )
preemption & Response priority difference :
High priority preemption priority can interrupt the ongoing low preemption priority interrupt .
Preempt interrupts of the same priority , A high response priority cannot interrupt a low response priority interrupt .
Preempt interrupts of the same priority , When two interrupts occur at the same time , Which response has the highest priority , Which comes first .
If the preemption priority and response priority of two interrupts are the same , It depends on which interrupt occurs first ;
Interrupt parameter initialization function
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
The structure is as follows
typedef struct
{
uint8_t NVIC_IRQChannel; // Set interrupt channel
uint8_t NVIC_IRQChannelPreemptionPriority;// Set response priority
uint8_t NVIC_IRQChannelSubPriority; // Set preemption priority
FunctionalState NVIC_IRQChannelCmd; // Can make / Can make
} NVIC_InitTypeDef;
Initialize instance
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;// A serial port 1 interrupt
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1 ;// Preemption priority is 1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;// Sub priority bit 2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//IRQ Channel enable
NVIC_Init(&NVIC_InitStructure); // Initialize... According to the parameters specified above NVIC register
Interrupt priority setting steps
① After the system is running, set the interrupt priority group first . Call function :
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
During the execution of the whole system , Set interrupt packet only once .
② For each interrupt , Set the corresponding preemption priority and response priority :
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
③ If you need to suspend / Jie hang , View the current activation status of the interrupt , Call related functions respectively .
边栏推荐
- [tutorial 19 of trio basic from introduction to proficiency] detailed introduction of trio as a slave station connecting to the third-party bus (anybus PROFIBUS DP...)
- Measurement fitting based on Halcon learning [III] PM_ measure_ board. Hdev routine
- Shape template matching based on Halcon learning [viii] PM_ multiple_ models. Hdev routine
- C # joint configuration with Halcon
- Buildroot system for making raspberry pie cm3
- Summary -st2.0 Hall angle estimation
- 导电滑环磨损快的原因
- Several implementation schemes of anti reverse connection protection of positive and negative poles of power supply!
- MySQL之MHA高可用集群
- Step motor generates S-curve upper computer
猜你喜欢
Stablq of linked list
Negative pressure generation of buck-boost circuit
Charge pump boost principle - this article will give you a simple understanding
Brief discussion on Buck buck circuit
On boost circuit
Drive LED -- GPIO control
OC and OD gate circuit
Consul安装
DCDC circuit - function of bootstrap capacitor
Soem EtherCAT source code analysis attachment 1 (establishment of communication operation environment)
随机推荐
动力电池UL2580测试项目包括哪些
[trio basic from introduction to mastery tutorial 20] trio calculates the arc center and radius through three points of spatial arc
Hardware and software solution of FPGA key chattering elimination
Sql Server的存儲過程詳解
Let's briefly talk about the chips commonly used in mobile phones - OVP chips
LED display equipment records of the opening ceremony of the Beijing Winter Olympics
Screen record of the opening ceremony of the Beijing winter olympics 2
DokuWiki deployment notes
C WinForm [exit application] - practice 3
How to define guid in AMI code
[tutorial 15 of trio basic from introduction to proficiency] trio free serial communication
[tutorial 19 of trio basic from introduction to proficiency] detailed introduction of trio as a slave station connecting to the third-party bus (anybus PROFIBUS DP...)
Altium designer learning (I)
Explication de la procédure stockée pour SQL Server
Circleq of linked list
Correlation based template matching based on Halcon learning [II] find_ ncc_ model_ defocused_ precision. hdev
Hardware 1 -- relationship between gain and magnification
[paper reading] the latest transfer ability in deep learning: a survey in 2022
Working principle and type selection of common mode inductor
MySQL之MHA高可用集群