欢迎来到天天文库
浏览记录
ID:15786936
大小:91.50 KB
页数:3页
时间:2018-08-05
《stm32函数库之外部中断》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、新手入门使用STM32函数库之外部中断作者:佚名 来源:本站原创 点击数: 756 更新时间:2013年06月12日 【字体:大 中 小】 啥也不说,先看看我的外星人开发板上的按键原理图。 板子偷懒,或者叫充分利用IO口得上拉功能,这边没有加常见的上拉电阻。到时候编程的时候使能IO的上拉就行了~看下面的接口知道了KEY0接到了STM32的PA13上! 曾经CZZ在梦里和我说过,STM32的任何一个IO都能作为外部中断输入,哇塞,超级强大! 参考一般的程序步骤如下: 1、系统初始化,如系统
2、时钟初始化,使之进入72MHZ主频; 2、GPIO配置,务必注意打开GPIO时钟时,一定打开AFIO时钟。 3、EXTI配置,在这里配置需要选择哪个引脚作为中断引脚。 4、NVIC配置,这也是比单片机多出来的部分,我们必须把NVIC中对应的通道使能,并且设置优先级别。 5、使用while(1)进行死循环,并在中断程序中写入中断发生时应如何处理。 按照上面的方法一步步就能实现功能了~ 首选,定义相关结构体, GPIO_InitTypeDefGPIO_InitStructur
3、e; EXTI_InitTypeDefEXTI_InitStructure; NVIC_InitTypeDefNVIC_InitStructure; 第二步,配置IO及其功能, GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8; //此处是配置LED灯得代码,便于观察! GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_M
4、ode_Out_PP; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_WriteBit(GPIOA,GPIO_Pin_8,Bit_SET); //上电立马熄灭LED GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; //配置PA13上拉输入 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitS
5、tructure.GPIO_Mode=GPIO_Mode_IPU; //上拉输入 GPIO_Init(GPIOA,&GPIO_InitStructure); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA
6、RCC_APB2Periph_AFIO,ENABLE); //务必打开GPIOA和AFIO时钟!!! 第三步,配置外部中断,相当于单片机的中断设置。 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSo
7、urce13); //配置A口得13脚为中断 EXTI_ClearITPendingBit(EXTI_Line13); //清除中断,貌似不加也没得问题,但是保险一下! EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; //外部中断 EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling; //下降沿触
8、发 EXTI_InitStructure.EXTI_Line=EXTI_Line13; EXTI_InitStructure.EXTI_LineCmd=ENABLE; EXTI_Init(&EXTI_InitStructure); 第四步,配置NVIC,这个也是STM32的特色吧~ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel
此文档下载收益归作者所有