打印
[STM32H7]

【STM32H7S78-DK测评】+开箱+LED闪烁

[复制链接]
213|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 cooldog123pp 于 2024-9-7 20:08 编辑

感谢论坛组织这次活动,有幸参与其中,先做个开箱和LED闪烁介绍吧。STM32H7S78-DK套件除了主控板本身还有外扩的两块小板子!套件介绍:
→→STM32H7S78-DK探索套件是一个完整的演示和开发平台,适用于基于Arm® Cortex®‑M7内核的STM32H7S7L8H6H微控制器
→→STM32H7S78-DK探索套件包含丰富的硬件功能,可帮助用户评估许多外设,如USB Type-C®、Octo‑SPI Flash存储器和Hexadeca‑SPI PSRAM设备、音频编解码器、数字麦克风、ADC、灵活的扩展连接器和用户按钮。凭借四个灵活的扩展连接器,可轻松实现无限制的扩展,适用于无线连接、模拟应用和传感器等特定应用。
→→STM32H7S7L8H6H微控制器具有三个I2C总线、六个SPI端口、三个USART端口、两个SDMMC端口、两个CAN端口、一个以太网端口、两个SAI端口、两个12位ADC、一个嵌入式降压转换器、两个Octo-SPI存储器接口、一个Hexadeca-SPI接口、支持功率传输的USB OTG HS端口、LCD-TFT控制器、灵活存储控制器 (FMC)、8至14位DCMI接口,支持JTAG和SWD调试。
→→STM32H7S78-DK探索套件集成了面向STM32 MCU的STLINK-V3EC嵌入式在线调试器和编程器,配有USB虚拟通信端口桥以及全套MCU软件包



板卡出厂有演示demo,先展示几张图片,可以感受到效果还是很丝滑的。






效果展示完了,那么我们照理来一段LED闪烁,首先我们用的是STM32CubeIDE,这里我们直接选择从开发板创建工程,这样外设都是根据这个开发板来配置的。
这样节省了很多时间,我们可以直接做我们的测试。

工程建立完成后,我们点开ioc,可以看到GPIO和板卡原理图是对上的,这里说一下,STM32H7S78-DK的工程分为2个部分,一个是boot一个是appli两者怎么联系的
我后续还要研究一下。这里都是用的boot,直接一些。




在ioc里面外设配置的时候都是可以选在配置在boot里面还是配置在appli里面,但是我有个疑问,GPIO没有这个选项,并且虽然在ioc里面做了配置,但是不管是boot还是
appli里面的MX_GPIO_Init都没有找到类似的初始化代码,问下哪位大神可以帮忙解答一下!我的做法是自己根据ioc的配置重写了配置代码,我写在了boot里面。

static void MX_GPIO_Init(void)
{
/* USER CODE BEGIN MX_GPIO_Init_1 */
  GPIO_InitTypeDef GPIO_InitStruct = {0};
  __HAL_RCC_GPIOM_CLK_ENABLE();
/* USER CODE END MX_GPIO_Init_1 */

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPION_CLK_ENABLE();
  __HAL_RCC_GPIOO_CLK_ENABLE();
  __HAL_RCC_GPIOP_CLK_ENABLE();

/* USER CODE BEGIN MX_GPIO_Init_2 */
  GPIO_InitStruct.Pin = LD2_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOO, &GPIO_InitStruct);

  GPIO_InitStruct.Pin = LD3_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOM, &GPIO_InitStruct);
/* USER CODE END MX_GPIO_Init_2 */
}
我初始化了原理图里面的LD2和LD3,在主循环里面交替闪烁
 while (1)
  {
    /* USER CODE END WHILE */
            if(F_LED0 == 1)
            {
                    HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
                    HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin);
                    F_LED0 = 0;
            }
    /* USER CODE BEGIN 3 */
  }
最终效果,展示一下!



使用特权

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

本版积分规则

1776

主题

6277

帖子

29

粉丝