STM32M4 EXTI
来源:互联网 发布:淘宝怎么看宝贝权重 编辑:程序博客网 时间:2024/04/30 10:30
void MCU_extiInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA
|RCC_AHB1Periph_GPIOB
|RCC_AHB1Periph_GPIOC
|RCC_AHB1Periph_GPIOD
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //暂时定为上拉输入。
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/**********************************外部输入中断配置***********************************/
/* 指定外部中断源设置 */
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource15);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource8);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource9);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource10);
/* 上/下沿同时触发 */
EXTI_InitStructure.EXTI_Line = EXTI_Line8 | EXTI_Line9 | EXTI_Line10;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; //下降沿触发。
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
EXTI_InitStructure.EXTI_Line = EXTI_Line15;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
EXTI_ClearFlag(EXTI_Line8);
EXTI_ClearFlag(EXTI_Line9);
EXTI_ClearFlag(EXTI_Line10);
EXTI_ClearFlag(EXTI_Line15);
/* 配置嵌套中断向量 优先级*/
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F; //暂时把这四个中断配置为一样的优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn ;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_Init(&NVIC_InitStructure);
{
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA
|RCC_AHB1Periph_GPIOB
|RCC_AHB1Periph_GPIOC
|RCC_AHB1Periph_GPIOD
|RCC_AHB1Periph_GPIOE,ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //暂时定为上拉输入。
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/**********************************外部输入中断配置***********************************/
/* 指定外部中断源设置 */
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource15);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource8);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource9);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource10);
/* 上/下沿同时触发 */
EXTI_InitStructure.EXTI_Line = EXTI_Line8 | EXTI_Line9 | EXTI_Line10;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; //下降沿触发。
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
EXTI_InitStructure.EXTI_Line = EXTI_Line15;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
EXTI_ClearFlag(EXTI_Line8);
EXTI_ClearFlag(EXTI_Line9);
EXTI_ClearFlag(EXTI_Line10);
EXTI_ClearFlag(EXTI_Line15);
/* 配置嵌套中断向量 优先级*/
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F; //暂时把这四个中断配置为一样的优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn ;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_Init(&NVIC_InitStructure);
}
外部中断服务程序
void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line10) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line10);
//do something
}
}
0 0
- STM32M4 EXTI
- STM32M4 内部flash编程
- STM8->EXTI
- STM32->EXTI
- STM32之EXTI
- EXTI和NVIC初探
- STM32F407之EXTI
- STM32 EXTI的学习
- EXTI中断程序实例
- STM32----------NVIC和EXTI
- stm32 exti中断
- stm32之EXTI中断
- STM32之EXTI(中断)
- STM32CubeMX:EXTI操作
- 外部中断EXTI
- STM 32 EXTI
- EXTI外部中断
- STM32 EXTI外部中断
- 在Ubuntu Linux下怎样安装QQ
- 20150601数组练习
- Java内部类学习总结
- 一张图记住常用 Linux 系统性能诊断工具
- NSURLRequestCachePolicy 缓存策略
- STM32M4 EXTI
- thinkphp使用flash上传验证登录问题
- 20150602函数
- linux使用技巧和方法
- js实现小时钟,js中Date对象的使用?
- 程序员必读的职业规划书之摘要
- 第14周-输入输出流,文本文件-项目3-OOP版电子词典
- 20150603指针基本操作及应用
- WWDC 2015大会视频直播地址:看iOS9大展身手