打印
[STM32H7]

【STM32H745I-DISCO试用】——Keil环境搭建与LED灯闪烁

[复制链接]
98|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

[i=s] 本帖最后由 jobszheng 于 2025-3-9 19:57 编辑 [/i]<br /> <br />

【STM32H745I-DISCO试用】——Keil环境搭建与LED灯闪烁

  拿到开发板,连接好MicroUSB数据线后,选择对应的供电路线帽,我们就可以在LCD屏上看到ST官方的示例DEMO。这里我不再演示了,已经有多位网友在版块展示了。

  我本次也采用ST公司官方的STM32CubeMX可视化代码生成工具来实现底层外设的配置与代码生成。

  打开STM32CubeMX后,选择STM32H745HIX6芯片,进入工程。

  1. 配置系统时钟

  根据原理图,我们看到STM32H745连接了25MHz的有源晶振。所以,在RCC选项配置页中选择 BYPASS Clock Source。再进入时钟树配置页面。在时钟路由里面选择对应的分频与倍频系数,我们配置参数如下图所示:

blink_01.png

blink_02.png

  这里还重点提示一下,我们在RCC配置界面里面的Power Para栏目里,Power Source要选择 PWR_DIRECT_SMPS_SUPPLY,其下面的Power Regular Voltage 要可以选择 Scale 1

  1. 配置LED灯引脚

  我们再次返回原理图,查看LD6与LD7这两个LED灯对应的GPIO引脚,我们在STM32CubeMX中选择这两个GPIO为普通的GPIO,配置为 Output Open Drain模式,并把两个GPIO配置到不同的CPU内核中,如下图所示:

blink_03.png

  我这里考虑到暂时不使用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灯就“你追我赶”的闪烁起来了。

blink_04.gif

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:热爱开源,乐于分享。在嵌入式技术领域里面,主攻通讯协议,Modbus,TCP/IP以及虚拟化和RTOS

21

主题

464

帖子

3

粉丝