EXTI — 外部中断 GPIO 配置
固件库: CIU32F003_STDLib V1.0.3
芯片: CIU32
源文件: CIU32/CIU32F003_STDLib_V1.0.3/Projects/EXTI/EXTI_GPIOConfig/Source/main.c
功能简介
本示例演示外部中断功能。当外部引脚电平发生变化时,自动触发中断服务函数。按键检测、信号边沿捕获等场景都会用到。
完整代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include "main.h"
int main(void)
{
/* ϵͳʱ */
system_clock_config();
/* Systickʼ */
std_delay_init();
/* GPIO ʼ */
gpio_init();
/* EXTIʼ */
exti_init();
/* NVIC ʼ*/
nvic_init();
while (1)
{
/* ÿһΰEXTIжϣLEDлһ */
if (g_exti_gpio_flag == 1)
{
std_gpio_toggle_pin(LED_GPIO_PORT,LED_PIN);
g_exti_gpio_flag = 0;
}
}
}
|
代码讲解
系统时钟初始化:配置 MCU 的主频和时钟树。不同芯片的时钟配置不同,一般由工具生成。
GPIO 配置:设置引脚为输出/输入模式,选择推挽/开漏输出,配置上拉/下拉。
中断优先级配置:NVIC 设置中断的抢占优先级和子优先级。数字越小优先级越高。