您的位置:首页 > 其它

欢迎使用CSDN-markdown编辑器

2017-07-06 10:22 246 查看
/*

*

* 模块名称 : 外部中断测试

* 文件名称 : bsp_ex_it.c

* 版 本 : V1.0

* 说 明 : stm32f429

* 修改记录 :

* 版本号 日期 作者 说明

* V1.0 2017-7-6 yqa

* IO 0-15分别对应EXTI 0-15,EXTI0-4独立,EXTI9_5,EXTI15_10共用地址

*

* Copyright (C), 2015-2020,

*

*/

include “includes.h”

void GPIO_Configuration()

{

GPIO_InitTypeDef GPIO_InitStructure;

/* 打开GPIOI的时钟 */

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOH, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//注意要打开SYSCFG时钟

//中断IO初始化

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;//key3

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; // 设为输入口

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // IO口最大速度

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//其他模式死机

GPIO_Init(GPIOH, &GPIO_InitStructure);

}

void EXTI_Configuration(void)

{

EXTI_InitTypeDef EXTI_InitStructure;

//中断初始化

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOH, EXTI_PinSource4);

EXTI_ClearITPendingBit(EXTI_Line4);

EXTI_InitStructure.EXTI_Line = EXTI_Line4;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;//其他模式死机

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

}

void ConfigEXITNVIC()

{

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn; //PPP外部中断线
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);


}

/*

函 数 名: bsp_InitUart

功能说明: 初始化串口硬件,并对全局变量赋初值.

形 参: 无

返 回 值: 无

*/

void EX_TI_InitUart(void)

{

GPIO_Configuration();

EXTI_Configuration();

ConfigEXITNVIC(); // 配置中断

}

void EXTI4_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line4) != RESET)


{

bsp_LedToggle(3);
USART1RcveiverState = 1;//修改变量值,在卖弄;函数内打印
//LIERDA_WARNING("func is =%s\n",__func__);//中断函数中不能使用printf


}

EXTI_ClearITPendingBit(EXTI_Line4);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: