1.主函数部分:
#include "stm32f10x.h" // Device header #include "Delay.h" #include "LED.h" #include "Key.h" int main(void) { uint8_t Key_Num=0; Key_Num=Key_GetNum(); while(1) { if(Key_Num==1) LED1_Turn(); if(Key_Num==2) LED1_Turn(); } }
2.LED.c代码部分:
#include "stm32f10x.h" // Device header void LED_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct); } void LED1_ON(void) { GPIO_ResetBits(GPIOA,GPIO_Pin_1); } void LED1_OFF(void) { GPIO_SetBits(GPIOA,GPIO_Pin_1); } void LED2_ON(void) { GPIO_ResetBits(GPIOA,GPIO_Pin_2); } void LED2_OFF(void) { GPIO_SetBits(GPIOA,GPIO_Pin_2); } void LED1_Turn(void) { if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_1)==0) GPIO_SetBits(GPIOA,GPIO_Pin_1); else GPIO_ResetBits(GPIOA,GPIO_Pin_1); } void LED2_Turn(void) { if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_2)==0) GPIO_SetBits(GPIOA,GPIO_Pin_2); else GPIO_ResetBits(GPIOA,GPIO_Pin_2); }
LED.h代码部分:
#ifndef __LED_H #define __LED_H void LED_Init(void); void LED1_ON(void); void LED1_OFF(void); void LED1_Turn(void); void LED2_ON(void); void LED2_OFF(void); void LED2_Turn(void); #endif
3.Key(按键)代码部分:
#include "stm32f10x.h" // Device header #include "Delay.h" void Key_Init() { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_11; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStruct); } uint8_t Key_GetNum(void) { uint8_t Key_Num=0; if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0) { Delay_ms(10); while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0) Delay_ms(10); Key_Num=1; } return Key_Num; if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)==0) { Delay_ms(10); while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)==0) Delay_ms(10); Key_Num=2; } return Key_Num; }
Key.h(按键)代码部分:
#ifndef __Key_H #define __Key_H void Key_Init(void); uint8_t Key_GetNum(void); #endif