1.遇到的问题和解决方法1.在新建.c和.h文件的时候注意是选择到具体文件夹需要手动再选择一层2.当文件的头文件报错的时候点击魔术棒按钮看Define和Include Paths,是否正确配置点击ok点击扳手按钮再查看编码设置点击ok,就能解决头文件报错的问题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_ModeGPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_PinGPIO_Pin_1|GPIO_Pin_2; GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz; GPIO_Init(GPIOA,GPIO_InitStruct); GPIO_SetBits(GPIOA,GPIO_Pin_1); GPIO_SetBits(GPIOA,GPIO_Pin_2); } void LED1_ON(void){ GPIO_ResetBits(GPIOA,GPIO_Pin_1); } void LED1_OFF(void){ GPIO_SetBits(GPIOA,GPIO_Pin_1); } 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_ON(void){ GPIO_ResetBits(GPIOA,GPIO_Pin_2); } void LED2_OFF(void){ GPIO_SetBits(GPIOA,GPIO_Pin_2); } 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); #endifKEY.c注意GPIO_InitStruct.GPIO_ModeGPIO_Mode_IPU;否则按键按了灯没反应#include stm32f10x.h // Device header #include delay.h void Key_init(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_ModeGPIO_Mode_IPU; GPIO_InitStruct.GPIO_PinGPIO_Pin_1|GPIO_Pin_11; GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz; GPIO_Init(GPIOB,GPIO_InitStruct); } uint8_t Key_GetNum(void){ uint8_t ret0; if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)0){ Delay_ms(20); while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)0); Delay_ms(20); ret1; } if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)0){ Delay_ms(20); while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)0); Delay_ms(20); ret2; } return ret; }KEY.h#ifndef __KEY_H #define __KEY_H void Key_init(void); uint8_t Key_GetNum(void); #endifmain.c#include stm32f10x.h // Device header #include Delay.h #include LED.h #include KEY.h uint8_t KeyNum; int main(void){ LED_Init(); Key_init(); while(1){ KeyNum Key_GetNum(); if(KeyNum1){ LED1_Turn(); } if(KeyNum2){ LED2_Turn(); } } //return 0; }修仙一途道阻且长共勉