欢迎使用CSDN-markdown编辑器

来源:互联网 发布:软件试用报告模板 编辑:程序博客网 时间:2024/06/09 22:13

/*


*
* 模块名称 : 外部中断测试
* 文件名称 : 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);
}