当前位置:网站首页>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 .
边栏推荐
- Baiwen 7-day smart home learning experience of Internet of things
- How to define guid in AMI code
- [cloud native | learn kubernetes from scratch] III. kubernetes cluster management tool kubectl
- Improve lighting C program
- C language # and #
- C#,数值计算(Numerical Recipes in C#),线性代数方程的求解,LU分解(LU Decomposition)源程序
- Soem EtherCAT source code analysis attachment 1 (establishment of communication operation environment)
- Talk about the function of magnetic beads in circuits
- [trio basic tutorial 18 from introduction to proficiency] trio motion controller UDP fast exchange data communication
- Slist of linked list
猜你喜欢
Management and use of DokuWiki
Shape template matching based on Halcon learning [VII] reuse_ model. Hdev routine
Semiconductor devices (III) FET
Some thoughts on extracting perspectives from ealfa and Ebeta
Drive LED -- GPIO control
DokuWiki deployment notes
Matlab2018b problem solving when installing embedded coder support package for stmicroelectronic
C language enhancement -- pointer
Why is 1900 not a leap year
[trio basic from introduction to mastery tutorial 20] trio calculates the arc center and radius through three points of spatial arc
随机推荐
[cloud native | learn kubernetes from scratch] III. kubernetes cluster management tool kubectl
Naming rules for FreeRTOS
Step motor generates S-curve upper computer
Soem EtherCAT source code analysis II (list of known configuration information)
Classic application of MOS transistor circuit design (2) - switch circuit design
After installing the new version of keil5 or upgrading the JLINK firmware, you will always be prompted about the firmware update
Solutions to compilation warnings in Quartus II
Basic embedded concepts
Soem EtherCAT source code analysis attachment 1 (establishment of communication operation environment)
On boost circuit
Matlab2018b problem solving when installing embedded coder support package for stmicroelectronic
Detailed explanation of pragma usage
Measurement fitting based on Halcon learning [II] meaure_ pin. Hdev routine
Ble encryption details
Problem solving: interpreter error: no file or directory
Several important parameters of LDO circuit design and type selection
Negative pressure generation of buck-boost circuit
Sql Server的存儲過程詳解
Fundamentals of C language
Shell script basic syntax