diff --git a/USER/Key/Key.c b/USER/Key/Key.c index beeb23a..784e385 100644 --- a/USER/Key/Key.c +++ b/USER/Key/Key.c @@ -9,9 +9,9 @@ u8 flag = 0; /**------------------------------------------------------- - * @函数名 KEY_INIT - * @功能 按键初始化 - * @返回值 无 + * @鍑芥暟鍚� KEY_INIT + * @鍔熻兘 鎸夐敭鍒濆鍖� + * @杩斿洖鍊� 鏃� ***------------------------------------------------------*/ void KEY_INIT() { @@ -20,23 +20,23 @@ void KEY_INIT() } /**------------------------------------------------------- - * @函数名 KEY_GPIO_INIT - * @功能 按键GPIO初始化 - * @返回值 无 + * @鍑芥暟鍚� KEY_GPIO_INIT + * @鍔熻兘 鎸夐敭GPIO鍒濆鍖� + * @杩斿洖鍊� 鏃� ***------------------------------------------------------*/ void KEY_GPIO_INIT(){ GPIO_InitTypeDef GPIO_InitStructure; - RCC_APB2PeriphClockCmd(KEY_CLOCK, ENABLE); //使能对应端口时钟 + RCC_APB2PeriphClockCmd(KEY_CLOCK, ENABLE); //浣胯兘瀵瑰簲绔彛鏃堕挓 GPIO_InitStructure.GPIO_Pin = KEY_Pin;//KEY_Pin - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入 - GPIO_Init(KEY_PORT, &GPIO_InitStructure);//初始化key_GPIO + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //璁剧疆鎴愪笂鎷夎緭鍏� + GPIO_Init(KEY_PORT, &GPIO_InitStructure);//鍒濆鍖杒ey_GPIO } /**------------------------------------------------------- - * @函数名 KEY_NVIC_INIT - * @功能 按键按下时为低电平0 - * @返回值 无 + * @鍑芥暟鍚� KEY_NVIC_INIT + * @鍔熻兘 鎸夐敭鎸変笅鏃朵负浣庣數骞�0 + * @杩斿洖鍊� 鏃� ***------------------------------------------------------*/ void KEY_NVIC_INIT() { @@ -45,71 +45,72 @@ void KEY_NVIC_INIT() - /* 初始化KEY按键为中断模式 */ + /* 鍒濆鍖朘EY鎸夐敭涓轰腑鏂ā寮� */ /* Connect Button EXTI Line to Button GPIO Pin */ - /* 将KEY按键对应的管脚连接到内部中断线 */ - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //使能复用功能时钟 + /* 灏咾EY鎸夐敭瀵瑰簲鐨勭鑴氳繛鎺ュ埌鍐呴儴涓柇绾� */ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //浣胯兘澶嶇敤鍔熻兘鏃堕挓 - //GPIOE.2 中断线以及中断初始化配置 下降沿触发 + //GPIOE.2 涓柇绾夸互鍙婁腑鏂垵濮嬪寲閰嶇疆 涓嬮檷娌胯Е鍙� GPIO_EXTILineConfig(KEY_PORT_SOURCE,KEY_PIN_SOURCE); EXTI_InitStructure.EXTI_Line=KEY_EXIT_LINE; //KEY2 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; - EXTI_Init(&EXTI_InitStructure); //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器 + EXTI_Init(&EXTI_InitStructure); //鏍规嵁EXTI_InitStruct涓寚瀹氱殑鍙傛暟鍒濆鍖栧璁綞XTI瀵勫瓨鍣� /* Enable and set Button EXTI Interrupt to the lowest priority */ - NVIC_InitStructure.NVIC_IRQChannel = KEY_NVIC_IRQChannel; //使能按键WK_UP所在的外部中断通道 - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //抢占优先级2, - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; //子优先级0 - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道 + NVIC_InitStructure.NVIC_IRQChannel = KEY_NVIC_IRQChannel; //浣胯兘鎸夐敭WK_UP鎵�鍦ㄧ殑澶栭儴涓柇閫氶亾 + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //鎶㈠崰浼樺厛绾�2锛� + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; //瀛愪紭鍏堢骇0 + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //浣胯兘澶栭儴涓柇閫氶亾 NVIC_Init(&NVIC_InitStructure); } /**------------------------------------------------------- - * @函数名 EXTI3_IRQHandler - * @功能 处理外部中断线3的中断,按键1中断处理函数 - * @参数 无 - * @返回值 无 + * @鍑芥暟鍚� EXTI3_IRQHandler + * @鍔熻兘 澶勭悊澶栭儴涓柇绾�3鐨勪腑鏂紝鎸夐敭1涓柇澶勭悊鍑芥暟 + * @鍙傛暟 鏃� + * @杩斿洖鍊� 鏃� ***------------------------------------------------------*/ void KEY_NVIC_Handler(void) /* Key 1 */ { if(EXTI_GetITStatus(KEY_EXIT_LINE) != RESET) { - /* 延迟去抖 */ + /* 寤惰繜鍘绘姈 */ delay(150); if(KEY == 0) { - /*改变系统工作标志*/ + /*鏀瑰彉绯荤粺宸ヤ綔鏍囧織*/ flag = !flag; - printf("\r\n开关状态改变为:%d\r\n",!flag); - /* 改变指示灯状态 */ + printf("\r\n寮�鍏崇姸鎬佹敼鍙樹负锛�%d\r\n",!flag); + /* 鏀瑰彉鎸囩ず鐏姸鎬� */ if(!flag){ LED_SYS_ON(); - ADC_Cmd(ADC_x, ENABLE); - TIM_Cmd(TIM2, ENABLE); //使能TIM2 - TIM_Cmd(TIM3, ENABLE); //使能TIM3 + ADCx_Init(); + TIM_Cmd(TIM2, ENABLE); //浣胯兘TIM2 + TIM_Cmd(TIM3, ENABLE); //浣胯兘TIM3 }else { LED_SYS_OFF(); ADC_Cmd(ADC_x, DISABLE); - TIM_Cmd(TIM2, DISABLE); //使能TIM2 - TIM_Cmd(TIM3, DISABLE); //使能TIM3 + ADC_DMACmd(ADC_x, DISABLE); + TIM_Cmd(TIM2, DISABLE); //浣胯兘TIM2 + TIM_Cmd(TIM3, DISABLE); //浣胯兘TIM3 } } - /* 等待按键释放 */ + /* 绛夊緟鎸夐敭閲婃斁 */ while(KEY == 0); - /* 延迟去抖 */ + /* 寤惰繜鍘绘姈 */ delay(150); /* Clear the EXTI Line 4 */ - /* 清除中断挂起标志位,否则会被认为中断没有被处理而循环再次进入中断 */ + /* 娓呴櫎涓柇鎸傝捣鏍囧織浣嶏紝鍚﹀垯浼氳璁や负涓柇娌℃湁琚鐞嗚�屽惊鐜啀娆¤繘鍏ヤ腑鏂� */ EXTI_ClearITPendingBit(KEY_EXIT_LINE); } }