收藏 分销(赏)

按键中断程序.doc

上传人:pc****0 文档编号:8728116 上传时间:2025-02-27 格式:DOC 页数:3 大小:31KB 下载积分:10 金币
下载 相关 举报
按键中断程序.doc_第1页
第1页 / 共3页
按键中断程序.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
* 1个LED指示灯,对应的GPIO为 : PC0输出为1点亮LED 输出为0关闭LED 另外PC1为外部中断触发:按键按下时为低电平,即可设置为低电平触发 /* GPIO配置函数 */ void GPIO_Configuration(void) { /*定义2个结构体变量 */ GPIO_InitTypeDef GPIO_InitStructure; /*开启GPIOB,GPIOC ,复用口时钟的 时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /*给GPIOC_Pin_1一个初始值*/ GPIO_ResetBits(GPIOC, GPIO_Pin_0); 配置IO口,初始化IO GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ; // 将连接LED的GPIO设置为推挽输出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为2MHZ的速度,响应时间,没要求越小越好GPIO_Mode_IPU为输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //初始化GPIOC GPIO_Init(GPIOC, &GPIO_InitStructure); /*给KEY_InitStructure.GPIO_Pin KEY_InitStructure.GPIO_Mode KEY_InitStructure.GPIO_Speed付初始值*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1; //设置为上拉输入 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU ; //设置为2MHZ的速度 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //初始化GPIOB GPIO_Init(GPIOC, &GPIO_InitStructure); //设置GPIOC的中断标志位 GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource1); } /******配置EXTI**********/ void EXTI_Configuration(void) { //定义一个结构体 EXTI_InitTypeDef EXTI_InitStructure; //设置中段线 EXTI_InitStructure.EXTI_Line = EXTI_Line1; //使能中断线 EXTI_InitStructure.EXTI_LineCmd = ENABLE ; //设置中断模式 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置中断触发方式 EXTI_InitStructure.EXTI_Trigger =EXTI_Trigger_Falling; //初始化中断 EXTI_Init(&EXTI_InitStructure); } /********配置优先级*****************/ void NVIC_Configuration(void) { //定义一个结构体 NVIC_InitTypeDef NVIC_InitStructure; //设置优先级组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0) ; //设置存入寄存器 NVIC_SetVectorTable (NVIC_VectTab_FLASH ,0x0); //设置 外部中断1线这里对应的是外部中断1因为我选的是之前的PC1来触发另外EXTI5_9_IRQn则表示外部中断5-9线。 NVIC_InitStructure.NVIC_IRQChannel =EXTI1_IRQn; //使能优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //配置抢断优先级这个是决定中断跳转可否嵌套的依据***非常重要 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0; //配置响应优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //初始化优先级 NVIC_Init(&NVIC_InitStructure); } //主函数 int main(void) { /* //调用初始化GPIO函数 GPIO_Configuration (); EXTI_Configuration (); NVIC_Configuration (); while(1) { ; } } 在it.c中的程序: void EXTI1_IRQHandler(void) { delay_GSM(10000); if( EXTI_GetITStatus (EXTI_Line1) == 1 ) { EXTI_ClearITPendingBit (EXTI_Line1); send_gprs_data(GPRMC,1); GPIO_WriteBit(GPIOC,GPIO_Pin_1,Bit_SET); delay_GSM(100000); GPIO_WriteBit(GPIOC,GPIO_Pin_1,Bit_RESET); } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服