STM32Cubemx+STM32G431RBT6蓝桥杯(LED)

这是用STM32CubeMx配置的HAL库点亮LED。

1、建立一个新工程

1d1e2ded708d4954b4596be76a554632.png

2、输入芯片STM32G431RBT6

 588524eaa1514386a47056603d6a0b94.png

 3、选择第一个

7a7724e3359f4fa6b62db51e7230d8b0.png

4、 配置RCC 选择外部高速时钟源00b8b86ad73a4f03a4c24f9efc034bc8.png

 5、配置SYS 选择Serial  Wire2ffa114d91bd4b7e8d5cd7967dbedf98.png

 6、单击PD2引脚  选择GPIO——Output 输出模式  PC8-PC15操作相同ff10df9dc5b94c128cc243b5a1396883.png

 a29f45f4397748a6bb6ec23e7db153a3.png

7、 配置GPIO口 配置PC8-PC15 用来控制8个LED 初始化为高电平(低电平点亮)推挽输出 d3dbe85122bd444ebece107b8157bcf1.png

 8、配置锁存器使能端PD2 默认低电平(不使能)a27ee952da8c422ab964c7107e865979.png

 9、配置时钟频率46828c0a8ccd404aad7801729f999b31.png

 10、选择工程位置 配置工程格式fb746e8dbf6b423cb09420faca01033e.png

 11、勾选此选项48bfdc2dcfba4279a706aa1a27f12c16.png

 12、生成MDK代码

671484e4ce054f219aed4db3d416d89b.png

 13、写代码烧录

HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,0);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,0);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_10,0);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_11,0);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_12,0);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,0);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,0);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,0);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,0);

                  我最近建了一个嵌入式的QQ交流群,感兴趣的可以进群了解一下,我会在群里分享一些常用的代码封装,以及一些项目的源码。QQ群讨论也是完全开放,只要不打广告大家可以就嵌入式尽情的沟通和交流,大家对文章中的内容有疑问也可以在群中提出,有空会尽我所能给大家一些帮助。QQ群号:643408467

### STM32CubeMXSTM32G4系列的使用教程 #### 1. 硬件环境与软件环境配置 在开始使用STM32CubeMX进行STM32G4系列微控制器开发之前,需要确保硬件和软件环境已经正确搭建。硬件方面,需准备一个基于STM32G4系列的开发板以及调试工具(如ST-Link或J-Link)。软件方面,则需要安装STM32CubeMX、Keil MDK或STM32CubeIDE等开发工具[^1]。 #### 2. 使用STM32CubeMX新建工程 启动STM32CubeMX后,选择目标微控制器型号(如STM32G431RBT6),然后创建一个新的工程文件。在此过程中,可以设置项目的名称、存储路径以及生成代码的目标语言(C或C++)[^1]。 #### 3. 配置引脚的工作模式 进入STM32CubeMX的图形化界面,根据项目需求配置各个引脚的功能。例如,将某些引脚配置为GPIO输出以控制LED,或将其他引脚配置为输入以检测按键状态。此外,还可以配置定时器、UART、SPI等外设的工作模式和参数。 #### 4. Project Manager设置 在Project Manager选项卡中,选择目标编译器(如Keil MDK-ARM或SW4STM32),并指定生成代码的目录结构。同时,可以调整时钟树配置,以满足特定应用对系统时钟的需求。 #### 5. 配置外设功能 对于一些复杂的应用场景,可能需要对外设进行更详细的配置。例如,使用定时器实现PWM输出时,可以通过以下代码片段设置TIM1通道1的PWM参数: ```c void TIM1_Channel1_Set(uint8_t val) { uint16_t temp = 0; temp = (val * 10); TIM_OC_InitTypeDef sConfigOC = {0}; sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = temp; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); } printf("temp = %d\r\n", temp); } ``` 上述代码展示了如何通过HAL库配置TIM1通道1的PWM输出参数[^2]。 #### 6. 液晶显示配置 如果项目中需要使用液晶显示屏,可以在STM32CubeMX中启用LCD相关的外设配置。生成代码后,可以直接调用以下函数实现基本的显示功能: ```c LCD_SetBackColor(); // 设置背景颜色 LCD_SetTextColor(); // 设置文本颜色 LCD_DisplayStringLine(Line0, (uint8_t *)"Hello World"); // 显示字符 ``` 这些函数通常由蓝桥杯比赛提供的测试代码封装而成,用户无需额外修改即可直接使用[^3]。 #### 7. LED与按键控制 对于简单的LED控制和按键检测,可以利用HAL库提供的GPIO操作函数。例如,以下代码片段展示了如何控制多个LED的状态: ```c HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET); // 点亮LED HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_RESET); // 熄灭LED ``` 类似地,按键检测可以通过读取GPIO引脚的状态来实现。例如: ```c if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET) { // 按键按下时执行的操作 } ``` 上述代码片段展示了如何通过GPIO引脚检测按键状态[^4]。 #### 8. 烧录与调试 完成代码编写后,使用J-Link或其他调试工具将程序烧录到目标芯片中。在烧录前,需确保调试接口已正确配置,并且开发板的电源已开启[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值