|
最开始出现的问题是:通过CubeIDE配置时钟树,外部无源晶振为25MHz,分频25,倍频432,再分频2,将SYSCLK配置为216MHz,写入一个简单的LED_IO测试程序,芯片直接变砖。后续无法重新写入,写入会报E31错误,并显示无法擦除Flash,只能通过按下硬件reset并执行.\STM32_Programmer_CLI.exe -c port=SWD mode=UR freq=100 -e all命令擦除。 后续尝试较低频率,25MHz,HSE配置SYSCLK在180MHz,在该频率下,虽然依然无法运行代码,但是可以重新写入与debug,于是通过debug发现,其运行到SystemClock_Config();函数的if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7) != HAL_OK)语句会稳定进入void HardFault_Handler(void);根本无法配置时钟。 一路降频到108MHz±2MHz(120MHz都不行),程序可以稳定运行。 于是我先将SYSCLK妥协的运行在108MHz上,但是试图通过调整分频系数,让APB1与APB2上的时钟可以跑满,但是依然运行不稳定,偶尔可以,但是一般会在数秒内内停止运行进入HardFault_Handler(void)。 后续考虑时PCB中晶振不起振,两驱晶振波形如下:
虽然峰峰值略微偏小,但是频率正常,为防止是由于外部晶振峰峰值偏小导致的硬件错误。在RCC中关闭HSE直接采用HSI,通过16分频,432倍频,2分频得到216MHz,刚开始可以IO测试程序可以运行,但是后续我配置了一个定时器上的PWM输出,程序直接不稳定,偶尔可以输出PWM波形,但是无法稳定,在数十秒内会随机进入HardFault_Handler(void)。 PCB与原理如图:
供电使用LDO,AMS1117_3.3,考虑过电源问题,后续直接采用外部可调直流电源直接供电,故障依旧。 |
stm32f746g-disco开发板的串口通讯连接方式
L6007u
touchgfx添加文字不能显示,直接死(HardFault_Handler)
stm32f767单片机上FMC可以只使用D[15:8]而不使用D[7:0]吗?
请教下关于 stm32h7x5,7x7 系列双核 dsi ltdc 显示驱动的时钟频率配置 ?
stm32支持canfd和dma结合使用吗
stm32F723ZET6使用ADC捕获正弦波,adc采样频率过高导致主函数无法运行,要怎么优化?
STM32F723ZET6使用ADC捕获标准正弦波并通过USB主动上报,正弦波重新拟合后存在凹陷峰?
STM32F769是否可以部署边缘AI
STM32F723ZET6配置内部USB PHY的高速模式,初始化的时候usb init无法通过,要怎么修改配置呢?
微信公众号
手机版