[STM32H7] 【STM32H745I-DISCO试用】cubeide开发环境验证

[复制链接]
 楼主| 南来之风 发表于 2025-3-8 13:46 | 显示全部楼层 |阅读模式
<
本帖最后由 南来之风 于 2025-3-8 13:46 编辑

参考板卡用户手册,了解板卡的默认供电规则。
5693567cbd7122cb7c.png

如果固件配置的供电与硬件不一致,会进入dead lock.

6536367cbd762bf9ae.png


点击Create New STM32 Project:
2271267cbcfcd2b520.png
在Example Selector里面选择开发板型号,然后选择一个例程,点击Next:

542167cbd65a33817.png

初次搭建环境要从服务器下载H7的BSP
1041167cbca1f19114.png

系统时钟配置:
  1. static void SystemClock_Config(void)
  2. {
  3.   RCC_ClkInitTypeDef RCC_ClkInitStruct;
  4.   RCC_OscInitTypeDef RCC_OscInitStruct;
  5.   HAL_StatusTypeDef ret = HAL_OK;

  6.   /* The voltage scaling allows optimizing the power consumption when the device is
  7.      clocked below the maximum system frequency, to update the voltage scaling value
  8.      regarding system frequency refer to product datasheet.  */
  9.   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

  10.   while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
  11.   
  12.   /* Enable HSE Oscillator and activate PLL with HSE as source */
  13.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  14.   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  15.   RCC_OscInitStruct.HSIState = RCC_HSI_OFF;
  16.   RCC_OscInitStruct.CSIState = RCC_CSI_OFF;
  17.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  18.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;

  19.   RCC_OscInitStruct.PLL.PLLM = 5;
  20.   RCC_OscInitStruct.PLL.PLLN = 160;
  21.   RCC_OscInitStruct.PLL.PLLFRACN = 0;
  22.   RCC_OscInitStruct.PLL.PLLP = 2;
  23.   RCC_OscInitStruct.PLL.PLLR = 2;
  24.   RCC_OscInitStruct.PLL.PLLQ = 4;

  25.   RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
  26.   RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2;
  27.   ret = HAL_RCC_OscConfig(&RCC_OscInitStruct);
  28.   if(ret != HAL_OK)
  29.   {
  30.     Error_Handler();
  31.   }
  32.   
  33. /* Select PLL as system clock source and configure  bus clocks dividers */
  34.   RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_D1PCLK1 | RCC_CLOCKTYPE_PCLK1 | \
  35.                                  RCC_CLOCKTYPE_PCLK2  | RCC_CLOCKTYPE_D3PCLK1);

  36.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  37.   RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
  38.   RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV2;
  39.   RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;  
  40.   RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
  41.   RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
  42.   RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;
  43.   ret = HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4);
  44.   if(ret != HAL_OK)
  45.   {
  46.     Error_Handler();
  47.   }
  48.   
  49.   /*
  50.   Note : The activation of the I/O Compensation Cell is recommended with communication  interfaces
  51.           (GPIO, SPI, FMC, QSPI ...)  when  operating at  high frequencies(please refer to product datasheet)      
  52.           The I/O Compensation Cell activation  procedure requires :
  53.         - The activation of the CSI clock
  54.         - The activation of the SYSCFG clock
  55.         - Enabling the I/O Compensation Cell : setting bit[0] of register SYSCFG_CCCSR
  56.   
  57.           To do this please uncomment the following code
  58. */

  59.   /*  
  60.   __HAL_RCC_CSI_ENABLE() ;
  61.   
  62.   __HAL_RCC_SYSCFG_CLK_ENABLE() ;
  63.   
  64.   HAL_EnableCompensationCell();
  65.   */  
  66. }

配置按键中断,通知core m7和core m4
  1. /**
  2.   * [url=home.php?mod=space&uid=247401]@brief[/url]  Configures EXTI lines 15 to 10 (connected to PC.13 pin) in interrupt mode
  3.   * @param  None
  4.   * @retval None
  5.   */
  6. static void EXTI15_10_IRQHandler_Config(void)
  7. {
  8.   GPIO_InitTypeDef   GPIO_InitStructure;
  9.   
  10.   /* Enable GPIOC clock */
  11.   __HAL_RCC_GPIOC_CLK_ENABLE();
  12.   
  13.   /* Configure PC.13 pin as the EXTI input event line in interrupt mode for both CPU1 and CPU2*/
  14.   GPIO_InitStructure.Mode = GPIO_MODE_IT_RISING;    /* current CPU (CM7) config in IT rising */
  15.   GPIO_InitStructure.Pull = GPIO_NOPULL;
  16.   GPIO_InitStructure.Pin = GPIO_PIN_13;
  17.   HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
  18.   
  19.   /* Enable and set EXTI lines 15 to 10 Interrupt to the lowest priority */
  20.   HAL_NVIC_SetPriority(EXTI15_10_IRQn, 2, 0);
  21.   HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
  22.   
  23.   /* Configure the second CPU (CM4) EXTI line for IT*/
  24.   HAL_EXTI_D2_EventInputConfig(EXTI_LINE13 , EXTI_MODE_IT,  ENABLE);
  25. }


编译成功后,点击Debug Configuration

8562467cbd5ecf4219.png

添加Cortex-M4:

9759667cbd612894f5.png

点击Apply, Debug:
5555167cbd2804758b.png

升级成功:
6410567cbd2fa2696c.png

成功进入调试界面:
5031067cbd3169e31b.png

点击全速运行:
4147667cbd4be93c2d.png

点击USER BUTTON 蓝色的按键,小灯状态翻转。
7862367cbd48fefd87.png

  1. #define LED1_GPIO_PORT                   GPIOJ
  2. #define LED1_PIN                         GPIO_PIN_2

  3. #define LED2_GPIO_PORT                   GPIOI
  4. #define LED2_PIN                         GPIO_PIN_13
板卡上的用户LED的丝印跟代码有一点区别:

4689667cbd58a6b170.png

用户按键没有按下时,红色与绿色led熄灭
5855967cbd80ab163c.png

按下后,产生中断,分别在cortex m4与m7中进入中断服务子程序

m7:
  1. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  2. {
  3.   
  4.   if (GPIO_Pin == GPIO_PIN_13)
  5.   {
  6.     /* Toggle LED1 */
  7.     BSP_LED_Toggle(LED1);
  8.   }
  9. }


m4:
  1. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  2. {  
  3.   if (GPIO_Pin == GPIO_PIN_13)
  4.   {
  5.     /* Toggle LED2 */
  6.     BSP_LED_Toggle(LED2);
  7.   }
  8. }


9510167cbd85d8d354.png









abotomson 发表于 2025-3-18 18:56 | 显示全部楼层
如果需要使用串口调试,配置 USART1 或其他可用的USART接口。
10299823 发表于 2025-3-18 19:11 | 显示全部楼层
STM32CubeIDE是一个基于Eclipse的集成开发环境,它包含了STM32CubeProgrammer、STM32CubeMX和必要的GNU工具链。
mikewalpole 发表于 2025-3-18 19:22 | 显示全部楼层
安装路径中不要包含中文。              
tabmone 发表于 2025-3-18 19:42 | 显示全部楼层
成功验证STM32H745I-DISCO开发板在STM32CubeIDE开发环境中的配置和功能。
wengh2016 发表于 2025-3-18 20:59 | 显示全部楼层
https://www.st.com/en/embedded-software/cubide.html
mnynt121 发表于 2025-3-18 22:20 | 显示全部楼层
在升级固件库时,注意备份旧版本              
cemaj 发表于 2025-3-18 22:46 | 显示全部楼层
在配置外设资源时,注意避免资源冲突。
biechedan 发表于 2025-3-19 10:57 | 显示全部楼层
从STMicroelectronics官方网站下载CubeIDE安装包。
uytyu 发表于 2025-3-19 14:18 | 显示全部楼层
在CubeIDE中打开CubeMX工具,用于配置开发板资源。
yeates333 发表于 2025-3-20 10:12 | 显示全部楼层
访问ST官方网站,下载最新版本的STM32CubeIDE。
pl202 发表于 2025-3-20 12:18 | 显示全部楼层
CubeIDE中的固件库版本与开发板兼容。
alvpeg 发表于 2025-3-20 14:35 | 显示全部楼层
可进一步开发复杂应用              
qiufengsd 发表于 2025-3-20 14:54 | 显示全部楼层
​STM32H745I-DISCO 开发板与 ​CubeIDE 开发环境的兼容性
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

290

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

69

主题

290

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部