[STM32H7]

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

[复制链接]
1153|0
手机看帖
扫描二维码
随时随地手机跟帖
cooldog123pp|  楼主 | 2024-9-7 20:07 | 显示全部楼层 |阅读模式
本帖最后由 cooldog123pp 于 2024-10-1 15:40 编辑

感谢论坛组织这次活动,有幸参与其中,先做个开箱和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软件包

7245366dc319f190e7.jpg

板卡出厂有演示demo,先展示几张图片,可以感受到效果还是很丝滑的。
2892466dc33a00df8b.jpg
9799966dc33bbbb6bc.jpg
5949066dc33ae1252a.jpg

VID_20240906_211215.gif

效果展示完了,那么我们照理来一段LED闪烁,首先我们用的是STM32CubeIDE,这里我们直接选择从开发板创建工程,这样外设都是根据这个开发板来配置的。
这样节省了很多时间,我们可以直接做我们的测试。
497066dc34dff2a5d.png
工程建立完成后,我们点开ioc,可以看到GPIO和板卡原理图是对上的,这里说一下,STM32H7S78-DK的工程分为2个部分,一个是boot一个是appli两者怎么联系的
我后续还要研究一下。这里都是用的boot,直接一些。
7639166dc35ce171cd.png
3460366dc35d57e4e7.png

3734566dc35c7ea19b.png
在ioc里面外设配置的时候都是可以选在配置在boot里面还是配置在appli里面,但是我有个疑问,GPIO没有这个选项,并且虽然在ioc里面做了配置,但是不管是boot还是
appli里面的MX_GPIO_Init都没有找到类似的初始化代码,问下哪位大神可以帮忙解答一下!我的做法是自己根据ioc的配置重写了配置代码,我写在了boot里面。
367366dc3a4145a05.png
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 */
  }
最终效果,展示一下!
VID_20240907_182015.gif


使用特权

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

本版积分规则

1804

主题

6336

帖子

29

粉丝