买了块NUCLEO-H743 ,使用STM32CubeMX 配置的主频居然是72M,而不是400M。配置的lwip+rtos 怎么也ping不通。无奈之下,下载了 STM32Cube_FW_H7_V1.7.0 一下子lwip +rtos 就成功了。没开心多久,为了printf 再定位,开通USART3 又是不通,后来好不容易发现串口调试助手上出现了几个反着的“???”,于是怀疑各种时钟配置错误。偶尔发现设置的115200 波特率,调试助手上设为38400 就好了。1/3 关系,蒙圈!
搜索各种老外的讨论区,终于发现问题:
在stm32h7xx_hal_conf_default.h中,我将
#define HSE_VALUE((uint32_t)25000000)/ *!<外部振荡器的值以Hz * /
更改为
#define HSE_VALUE((uint32_t)8000000)/ *!<外部振荡器的值in Hz * /
我开通UART3 的方式:
stm32h7xx_nucelo_conf.h 中开放 USE_COM_LOG 为 1
/* COM define */
#define USE_COM_LOG 1U
#define USE_BSP_COM_FEATURE 1U
static void BSP_Config(void)
{
BSP_LED_Init(LED2);
BSP_LED_Init(LED3);
COM_InitTypeDef com1;
com1.BaudRate=115200;
com1.WordLength=COM_WORDLENGTH_8B;
com1.StopBits=COM_STOPBITS_1;
com1.Parity=COM_PARITY_NONE;
com1.HwFlowCtl=COM_HWCONTROL_NONE;
BSP_COM_Init(COM1,&com1);
}
至于printf 的再定位,倒是已经有了。
这段时间的痛苦经历再一次告诉我,不要过分相信大公司发布的东西,依然是各种bug。