欢迎使用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,
*
*/
{
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()
{
}
/*
函 数 名: bsp_InitUart
功能说明: 初始化串口硬件,并对全局变量赋初值.
形 参: 无
返 回 值: 无
*/
void EX_TI_InitUart(void)
{
GPIO_Configuration();
EXTI_Configuration();
ConfigEXITNVIC(); // 配置中断
}
void EXTI4_IRQHandler(void)
{
{
}
EXTI_ClearITPendingBit(EXTI_Line4);
}
*
* 模块名称 : 外部中断测试
* 文件名称 : 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);
}
相关文章推荐
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器ss
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器