文章目录
一、stm32CubeMX
STM32CubeMX是STMicroelectronics(ST)推出的一款图形化软件配置工具,旨在帮助开发者轻松配置STM32微控制器的硬件外设和中间件。该工具为用户提供了一个直观的界面,通过简单的点击和选择操作,可以生成C语言代码框架,极大地简化了STM32微控制器的初始化和配置过程。
关于安装stm32CubeMX,网上教程较多可以随意选择。本人参考教程:STM32CubeMx下载安装环境搭建及工程创建
在安装教程中一般都会介绍关于stm32CubeMX的使用在这里就不过多赘述了。
本次实验选择GPIO如下:
PA5-LED-设置为output
PA6-LED-设置为output
PB0-杜邦线-设置为EXTI-UserLabel:KEY
在选择时
在GPIO中PA5,PA6均设置为High。
在NVIC中选中B0即可。
二、HAL实现流水灯
(1)实现:完成2只LED灯的周期闪烁。
(2)程序
//main函数下的while循环
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET);
/* USER CODE BEGIN 3 */
}
(3)实物图
(4)实现效果
(5)观察管脚波形
三、中断—流水灯
(1)实现:开关接高电平时,对应的两个LED灯停止工作(即停止周期性闪烁),接低电平时,恢复工作。
(2)程序
//main中while
while (1)
{
/* USER CODE END WHILE */
switch(n)
{
case 0:
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);//PA4??
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET);//PB9??
HAL_Delay(1000);//??1s
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);//PA4??
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_RESET);//PB9??
HAL_Delay(1000);//??1s
break;
}
case 1:
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,1);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
break;
}
}
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 *
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if( GPIO_Pin == KEY_Pin)
{
n=!n;
}
}
(3)实物图
(4)实现效果
四、参考文章
STM32基于HAL库流水灯实验
基于HAL库的LED流水灯
五、总结
本次实验学习到了关于stm32CubeMX,以及HAL的相关知识。