STM32L051使用HAL库操作实例(1)-点亮LED
目录
一、STM32CubeMX配置(本文使用的STM32CubeMX版本为5.6.0)
1.MCU选型
2.使能时钟
3.配置时钟
4.设置GPIO口
5.引脚配置
6.配置STM32CubeMX生成工程文件7.点击GENERATE CODE生成工程文件
二、KEIL程序
一、STM32CubeMX配置(本文使用的STM32CubeMX版本为5.6.0)
需求:控制LED的亮灭,实现流水灯状态(PA11、PA12、PA15)
1.MCU选型
本例程使用的为STM32L051C8T6型号
2.使能时钟
3.配置时钟
4.设置GPIO口
5.引脚配置
根据原理图可知GPIO口输出低电平LED点亮,高电平LED就熄灭,所以默认设置上电状态为高电平
6.配置STM32CubeMX生成工程文件
7.点击GENERATE CODE生成工程文件
二、KEIL程序
1.需求:在main函数中添加控制LED引脚代码,实现改变三个LED的状态
生成好的工程文件内已经配置好了时钟及DPIO的初始化代码,只需添加相应的控制LED代码即可
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
HAL_Delay(500);
HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
HAL_Delay(500);
HAL_GPIO_TogglePin(LED3_GPIO_Port,LED3_Pin);
HAL_Delay(500);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
2.编译文件,下载。即可实现LED状态的翻转
源代码下载链接: https://download.csdn.net/download/cheng_nnan/12326572
Dark_kill1: 请教一下为什么我和你的配置都一样却不可以点灯呢
m0_72520276: 低电平,先是下降沿捕获,if里改成上升沿捕获,两次捕获时间的时间是低电平的时间
m0_72520276: HAL_TIM_IC_CaptureCallback这个函数,调试之后发现运行不能进入到else括号里是怎么回事,调了一下午,求解答
小心提防孙悟空: 运行成功了
皮克斯之旅: 实际测的是低电平时间哦,你可以仔细看看HAL_TIM_IC_CaptureCallback函数的逻辑。当ucStartFlag==0时是不会进入中断回调函数计时的。