按键中断程序.doc

上传人:sk****8 文档编号:3101772 上传时间:2019-05-21 格式:DOC 页数:3 大小:31KB
下载 相关 举报
按键中断程序.doc_第1页
第1页 / 共3页
按键中断程序.doc_第2页
第2页 / 共3页
按键中断程序.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、* 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_APB2

2、Periph_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_Mod

3、e_IPU 为输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;/初始化 GPIOCGPIO_Init(GPIOC, /*给 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.

4、GPIO_Speed = GPIO_Speed_2MHz;/初始化 GPIOBGPIO_Init(GPIOC, /设置 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_LineCm

5、d = ENABLE ;/设置中断模式EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; /设置中断触发方式EXTI_InitStructure.EXTI_Trigger =EXTI_Trigger_Falling;/初始化中断EXTI_Init( /*配置优先级*/void NVIC_Configuration(void) /定义一个结构体NVIC_InitTypeDef NVIC_InitStructure;/设置优先级组NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0) ;/设置存入寄存器NVI

6、C_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;

7、/配置响应优先级NVIC_InitStructure.NVIC_IRQChannelSubPriority =0;/初始化优先级NVIC_Init( /主函数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);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。