STM32点亮LED灯

📅 2026/7/5 5:58:00
STM32点亮LED灯
在User文件夹里新建LED文件建立两个文本文档将文本文档转化为led.c、led.h文件打开keil软件双击USER,将led.c文件双击添加进去右键#include stm32f10x.h包括整个单片机的库GPIO的结构体typedef struct//GPIO的结构体 { uint16_t GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; }GPIO_InitTypeDef;#include led.h #include stm32f10x.h //1.初始化时钟 //2.初始化外设 //初始化LED灯的函数--定义、声明、调用 void LED_Init(void) { //1.初始化LED引脚GPIOA1 GPIO_InitTypeDef led_initstruct;// //2.初始化时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); led_initstruct.GPIO_Pin GPIO_Pin_1; //配置GPIOA1的引脚 led_initstruct.GPIO_Speed GPIO_Speed_2MHz; //配置引脚的输出速度2MHz led_initstruct.GPIO_Mode GPIO_Mode_Out_PP//配置引脚的模式是推挽输出 GPIO_Init(GPIOA, led_initstruct);//初始化GPIO结构体 }右键找到他的定义RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); /** * brief Enables or disables the High Speed APB (APB2) peripheral clock. * param RCC_APB2Periph: specifies the APB2 peripheral to gates its clock. * This parameter can be any combination of the following values: * arg RCC_APB2Periph_AFIO, RCC_APB2Periph_GPIOA, RCC_APB2Periph_GPIOB, * RCC_APB2Periph_GPIOC, RCC_APB2Periph_GPIOD, RCC_APB2Periph_GPIOE, * RCC_APB2Periph_GPIOF, RCC_APB2Periph_GPIOG, RCC_APB2Periph_ADC1, * RCC_APB2Periph_ADC2, RCC_APB2Periph_TIM1, RCC_APB2Periph_SPI1, * RCC_APB2Periph_TIM8, RCC_APB2Periph_USART1, RCC_APB2Periph_ADC3, * RCC_APB2Periph_TIM15, RCC_APB2Periph_TIM16, RCC_APB2Periph_TIM17, * RCC_APB2Periph_TIM9, RCC_APB2Periph_TIM10, RCC_APB2Periph_TIM11 * param NewState: new state of the specified peripheral clock. * This parameter can be: ENABLE or DISABLE. * retval None */ void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) typedef enum {DISABLE 0, ENABLE !DISABLE} FunctionalState; #define IS_FUNCTIONAL_STATE(STATE) (((STATE) DISABLE) || ((STATE) ENABLE))以上是led.c文件void LED_Init(void);//led.h文件#include stm32f10x.h #include main.h #include led.h int main() { //1.初始化灯的引脚GPIOA1 LED_Init(); while(1) { //2.让GPIOA1输出低电平灯就亮了 GPIO_ResetBits(GPIOA, GPIO_Pin_1); } } //main.c文件进行烧录点亮LED