中断EXTI

在这里插入图片描述
相同的pin。 如A1 B1 C1…不能同时触发中断
2. 库函数配置一般步骤
①初始化IO口为输入。
GPIO_Init();
②开启IO口复用时钟。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
③设置IO口与中断线的映射关系。
void GPIO_EXTILineConfig();
④初始化线上中断,设置触发条件等。
EXTI_Init();
⑤配置中断分组(NVIC),并使能中断。
NVIC_Init();
⑥编写中断服务函数。
EXTIx_IRQHandler();
⑦清除中断标志位
EXTI_ClearITPendingBit();
———————————————

第一步打开外设时钟
第二步配置GPIO

void GPIO_Configuration(void)	
{
   		

GPIO_InitTypeDef GPIO_InitStructure;		
/*初始化GPIO结构体	*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx,ENABLE);	
 /*打开APB2外设GPIOx端口的时钟  */		

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_标号|GPIO_Pin_标号;		
/*管脚位置定义,标号可以是NONE、ALL、  0至15   */			

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
/*最高输出速度为50MHz */		

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;    
 /*推挽输出*/			

GPIO_Init(GPIOx,&GPIO_InitStructure); /*GPIOx初始化	*/

/*注:以上四行代码为一组,每组GPIO属性必须相同,默认的GPIO参数为:ALL,2MHz,FLATING。如果其中任意一行与前一组相应设置相同,那么那一行可以省略,由此推论如果前面已经将此行参数设定为默认参数(包括使用GPIO_InitTypeDefGPIO_InitStructure代码),本组应用也是默认参数的话,那么也可以省略。以下重复这个过程直到所有应用的管脚全部被定义完毕。*/	
}	

GPIO_Mode_IPU          /*上拉输入      */
GPIO_Mode_IPD         /*下拉输入  	*/	     
GPIO_Mode_AIN         /*模拟输入     */	 
GPIO_Mode_IN_FLOATING /*浮空输入(GPIO的 默认电平由外部决定) */		

GPIO_Mode_Out_PP       /*普通推挽输出  */		           
GPIO_Mode_Out_OD       /*普通开漏输出  */		 
GPIO_Mode_AF_PP        /*复用推挽输出  */		
GPIO_Mode_AF_OD 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值