阅读背景:

基于STM32的中断控制LED灯亮的代码

来源:互联网 

基于STM32的中断控制LED灯亮的代码

注释已经添加在代码啦
 

#include "stm32f10x.h" GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; void EXTI0_IRQHandler(void) // 定义外部中断0的中断服务函数 {     if (EXTI_GetITStatus(EXTI_Line0) != RESET) // 判断是否是外部中断0触发     {         GPIO_WriteBit(GPIOC, GPIO_Pin_13, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_13))); // 翻转LED灯状态         EXTI_ClearITPendingBit(EXTI_Line0); // 清除中断标志位     } } int main(void) {     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // 使能GPIOC时钟     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; // LED灯对应的GPIO引脚     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出模式     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO速度为50MHz     GPIO_Init(GPIOC, &GPIO_InitStructure); // 初始化GPIOC     RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); // 使能AFIO时钟     GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); // 配置外部中断0对应的GPIO引脚     EXTI_InitStructure.EXTI_Line = EXTI_Line0; // 配置外部中断0     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; // 中断模式     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; // 下降沿触发     EXTI_InitStructure.EXTI_LineCmd = ENABLE; // 使能外部中断0     EXTI_Init(&EXTI_InitStructure); // 初始化外部中断0     NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; // 配置外部中断0对应的中断通道     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00; // 抢占优先级为0     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; // 子优先级为0     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // 使能中断通道     NVIC_Init(&NVIC_InitStructure); // 初始化中断通道     while (1)     {         // 程序主循环     } } #include "stm32f1



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: