[i=s] 本帖最后由 jobszheng 于 2025-3-9 19:57 编辑 [/i]<br />
<br />
【STM32H745I-DISCO试用】——Keil环境搭建与LED灯闪烁
拿到开发板,连接好MicroUSB数据线后,选择对应的供电路线帽,我们就可以在LCD屏上看到ST官方的示例DEMO。这里我不再演示了,已经有多位网友在版块展示了。
我本次也采用ST公司官方的STM32CubeMX可视化代码生成工具来实现底层外设的配置与代码生成。
打开STM32CubeMX后,选择STM32H745HIX6芯片,进入工程。
- 配置系统时钟
根据原理图,我们看到STM32H745连接了25MHz的有源晶振。所以,在RCC选项配置页中选择 BYPASS Clock Source 。再进入时钟树配置页面。在时钟路由里面选择对应的分频与倍频系数,我们配置参数如下图所示:


这里还重点提示一下,我们在RCC配置界面里面的Power Para栏目里,Power Source要选择 PWR_DIRECT_SMPS_SUPPLY ,其下面的Power Regular Voltage 要可以选择 Scale 1 。
- 配置LED灯引脚
我们再次返回原理图,查看LD6与LD7这两个LED灯对应的GPIO引脚,我们在STM32CubeMX中选择这两个GPIO为普通的GPIO,配置为 Output Open Drain 模式,并把两个GPIO配置到不同的CPU内核中,如下图所示:

我这里考虑到暂时不使用LCD屏,所以先将其背光关闭掉了。即通过控制GPIO PK0引脚将其拉低实现的。
配置完成上述参数后,点击<kbd>GENERATE CODE</kbd>按钮生成Keil工程。
打开Keil工程,我们可以看到Keil工程文件夹中包含M7工程和M4工程。我们打开各自的main.c,并添加对应的闪烁程序代码。
在Cortex-M7文件夹的main.c修改
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
HAL_GPIO_WritePin(GPIOK, GPIO_PIN_0, GPIO_PIN_RESET);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(GPIOJ, GPIO_PIN_2);
HAL_Delay(250);
}
在Cortex-M4文件夹的main.c修改
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_13);
HAL_Delay(500);
}
/* USER CODE END 3 */
在编译之前,我里要特别说明一下,STM32CubeMX生成的Keil工程默认选择了AC5编译器,我们要将其修改为AC6编译器,否则这编译速度会非常慢。
编译完成后,我们将程序下载到STM32H745I-DISCO开发板上即可,再按一下<kbd>RESET</kbd>按键。这两颗LED灯就“你追我赶”的闪烁起来了。

|