STM32
直播中

周煌煦

7年用户 998经验值
私信 关注
[问答]

如何对基于STM32H757XI的流水灯进行调试

如何对基于STM32H757XI的流水灯进行调试?

回帖(1)

张雪

2021-9-28 17:28:43
  使用STM32H757XI流水灯调试
  环境准备
  我采用的STM32CubeIDE集成开发环境调试,非常方便。
  新建一个工程,选择对应的开发板型号。
  
  硬件配置
  阅读用户手册,尤其是电源配置。stm32H757XI电源选stik跳线,3v3跳线之类的跳线设置,开关打到boot0从用户flash启动。这样只要st-link的u***接口接上,和电脑连接就可以供电并调试了。
  软件配置
  首先在ioc文件中进行配置。
  
  在RCC中打开High speed clock,根据电源选择对应的supplySource,建议阅读用户手册。
  
  打开debug,我选用的是片上集成的st-link调试的,因此选择Serial Wire。
  
  GPIO配置,根据电气原理图,设置想要控制的GPIO端口。我这里把PK3,4,5,6都配置了。搜索对应的端口,选择GPIO-Output,并且分别对每个配置的引脚选择Pin Context Assignment,选择编程控制它的核,推挽模式(output push pull),上拉电阻pull up。
  
  
  时钟配置
  。
  配置完毕后在菜单栏点
  
  生成初始化程序。
  程序
  STM32757XI有两个核,分别是Cortex-M7和Cortex-M4。其中Cortex-M7性能更强,而Cortex-M4稍弱一些。两个核可以同时启动运作并相互通信,也可以只启动一个核。
  打开两个核的main.c文件,分别写入程序,控制不同的led灯。
  
  在int main()
  中找到空的while循环,写入流水灯程序。注意程序要写在user code begin核user code end中间,不然调整配置,重新生成程序后,会把这些位置以外的程序丢掉。
  同理另外一个核也同样写下程序,建议控制不同的led灯。
  这里用的是STM32H7的HAL库,选这个是因为听说这个库可移植性比标准库更强,下载下来的包里有用户手册,查阅还是很方便的。
  /* USER CODE BEGIN WHILE */ while (1) { HAL_GPIO_WritePin(GPIOK,GPIO_PIN_6,GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOK,GPIO_PIN_6,GPIO_PIN_RESET); HAL_Delay(500); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ }
  调试
  调试配置里,因为用St-link调试,所以选择SWD接口。这里直接点调试的话,是只调试对应的核的。如果要两个核一起调试,那么在startup里面添加进另一个核的调试文件。
  详细视频教程参考这个连接(包含原理讲解)
  
  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分