1、准备开发板

这里我选用了一块网红开发板:”小熊派“,这款板子的人气比较高,还是全国大学生物联网设计竞赛(华为杯)的华为竞赛开发板,我个人也比较喜欢用这款板子,这款板子在放在纸箱吃灰半年之后,被我重新拿了起来,并想借此写博客的机会,整理一下自己的代码。

开发板功能区分布图

用cubemx生成的代码修改没有错误提示_物联网


开发板俯视图

用cubemx生成的代码修改没有错误提示_单片机_02


外设引脚对应表

MCU引脚

引脚标注名

PC13

LED

LED原理图

用cubemx生成的代码修改没有错误提示_开发板_03

2、STM32CubeMX生成代码

用cubemx生成的代码修改没有错误提示_物联网_04

搜索并选择芯片型号

用cubemx生成的代码修改没有错误提示_stm32_05

配置系统时钟

用cubemx生成的代码修改没有错误提示_stm32_06

配置时钟树

STM32L4的最高主频可达到80M,最后使HCLK = 80Mhz即可:

用cubemx生成的代码修改没有错误提示_开发板_07


用cubemx生成的代码修改没有错误提示_开发板_08

配置GPIO引脚

用cubemx生成的代码修改没有错误提示_stm32_09

修改引脚的用户标签(相当于取另一个新名字)

用cubemx生成的代码修改没有错误提示_物联网_10

生成工程设置

用cubemx生成的代码修改没有错误提示_stm32_11

代码生成配置

用cubemx生成的代码修改没有错误提示_单片机_12

生成代码

用cubemx生成的代码修改没有错误提示_开发板_13

生成成功

用cubemx生成的代码修改没有错误提示_嵌入式_14

3、在MDK中编写代码

在gpio.h的用户代码区编写以下代码:

/* USER CODE BEGIN Includes */
typedef enum
{
    
	LED_OFF = 0,
	LED_ON,
	LED_Toggle
        
} LED_ENUM;
/* USER CODE END Includes */

/* USER CODE BEGIN Private defines */
#define LED_Set(status) status != LED_Toggle ? HAL_GPIO_WritePin( LED_GPIO_Port, LED_Pin, status != LED_ON ? GPIO_PIN_RESET : GPIO_PIN_SET): HAL_GPIO_TogglePin( LED_GPIO_Port, LED_Pin);	//利用define可以美化和简短我们的代码,知识点就用到了三目运算符的嵌套判断。
/* USER CODE END Private defines */

在main.c中的main函数中编写以下代码

while (1)
{  
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		
    LED_Set(LED_Toggle);	//翻转LED
    HAL_Delay(1000);		//延时1秒

/*   下面的代码等效于上面的代码  */
//  	LED_Set(LED_ON);		//点亮LED
//  	HAL_Delay(1000);		//延时1秒
//  	LED_Set(LED_OFF);		//熄灭LED
//  	HAL_Delay(1000);		//延时1秒
	
}
  /* USER CODE END 3 */

用cubemx生成的代码修改没有错误提示_物联网_15

4、配置烧录器

用cubemx生成的代码修改没有错误提示_嵌入式_16


用cubemx生成的代码修改没有错误提示_嵌入式_17

5、烧录代码

用cubemx生成的代码修改没有错误提示_物联网_18

6、实验现象

控制LED小灯每1秒钟闪烁一次。