前言
本人是准备参加蓝桥杯的一名普通大二学生,看到学长在CSDN上的写的备赛博客写的非常好,本人也想效仿他,第一次写博客写的不好请原谅。
一、软件准备
1、MDK4或者MDK5(可到官网或者其他途径获取,本人使用的是MDK5)
2、Cubemx(可到官网自行下载)
3、安装G4的包(1.2.0,1.3.0以及1.4.0均可)
4、串口调试助手(COM)
二、LED
1.G431RETx的原理图以及我们需要配置的元素
LED部分原理图:
分析:
上图显示了LD1-8的所在引脚位置,我们知道如果要控制LD则要将LE(Load Enable)引脚用PD2拉高,拉高后LD1-8就受PC8-PC15的控制了(此处为低电平电量)
2.CubeMx的配置步骤
注:若对Cubemx的配置方法不明白的,可以参看(这个是学长写的)
RCC配置如下:
IO配置:
PD2,PC8-PC15设置为GPIO_Output输出模式,PD2设置为默认低电平、PC8-PC15默认高电平
3.别忘了设置调试接口为SW
4.生成工程
5.测试代码
在工程文件夹中新建一个bsp文件夹存放自己写的板级支持包。
创建一个led.c和led.h文件
创建一个新组,并命名为bsp。
再在bsp里面添加刚刚自己创建的两个文件
led.c代码为:
- #include "led.h"
- void LED_Disp(unsigned char dsLED)
- {
- HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOC, dsLED << 8, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
- }
复制代码
led.h代码为:
- #ifndef __LED_H__
- #define __LED_H__
- #include "main.h"
- void LED_Disp(unsigned char dsLED);
- #endif
复制代码
main.c中main函数部分代码:
- int main(void)
- {
- /* USER CODE BEGIN 1 */
- unsigned char i = 0;
- /* 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 */
- LED_Disp(0x00); //LED全部熄灭
- /* USER CODE END 2 */
- /* Infinite loop */
- /* USER CODE BEGIN WHILE */
- while (1)
- {
- /* USER CODE END WHILE */
- /* USER CODE BEGIN 3 */
- LED_Disp(0x01 << i++);
- i %= 8;
- HAL_Delay(100);
- }
- /* USER CODE END 3 */
- }
复制代码
别忘了设置引用文件的路径
三、效果展示
————————————————
版权声明:火花页.
|