软件:keil 5,cubeMX生成初始化代码
硬件:STM32F103RCT6开发板
1.时钟配置
我的是开发板,使用的是外部晶振提供系统时钟
2.GPIO配置
选择PA8 和PD2为输出模式,因为只是点灯,所以配置都选择默认的
芯片引脚图
灯 接线图
可以看到LED0和LED1引脚被拉高,所以我们要想点亮LED需要给引脚一个低电平
3.代码
因为在配置GPIO时在user label中给两个引脚改名了,所以在代码中可以如下代替
while(1)
这里需要说明的是:
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
GPIO_TypeDef *GPIOx:选择哪一个GPIO口,如GPIOA,GPIOB…GPIOD
GPIO_Pin:选择GPIO口的哪一个引脚,如,GPIO_Pin_0,GPIO_Pin_1…GPIO_Pin_15
PinState:引脚的状态。引脚的状态无非就是高和低,此时我就认为对应的是SET和RESET,当我写上RESET后,程序出现了一个警告
warning: #188-D:enumerated type mixed with another
原因在于HAL_GPIO_WritePin()函数在声明的时候就规定了该如何写
因此此处应当是GPIO_PIN_RESET或者GPIO_PIN_SET
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
这个函数作用时反转GPIO口的某个引脚的状态(高–>低/低–>高)
最后加上延时函数 HAL_Delay(多少毫秒);就可以看到灯在闪烁了
最最后附上毫无作用的源码(Keil 5 打开)
https://download.csdn.net/download/liang_song/22862454
STM32F103 HAL 点灯
最新推荐文章于 2024-05-26 22:18:33 发布