打印

H750 用cubemx配置串口有问题,总是进入hardfault

[复制链接]
161|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
石头张|  楼主 | 2018-8-3 20:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
cubemx,固件库都是最新版的。我使用了UART2,就用cubemx做了相应配置。但是在执行UART2初始化,调用下边这个函数的时候就会进入hardfault。



uint32_t HAL_RCC_GetPCLK2Freq(void)
{
  /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/
#if defined(RCC_D2CFGR_D2PPRE2)

   // return HAL_RCC_GetHCLKFreq();  本来是应该执行下边那条指令的,为分析问题我简化成这样,还是会进入hardfault
  return (HAL_RCC_GetHCLKFreq() >> ((D1CorePrescTable[(RCC->D2CFGR & RCC_D2CFGR_D2PPRE2)>> RCC_D2CFGR_D2PPRE2_Pos]) & 0x1FU));
#else
  return (HAL_RCC_GetHCLKFreq() >> ((D1CorePrescTable[(RCC->CDCFGR2 & RCC_CDCFGR2_CDPPRE2)>> RCC_CDCFGR2_CDPPRE2_Pos]) & 0x1FU));
#endif
}


看上去是HAL_RCC_GetPCLK2Freq 这个函数导致的,但是如果我把这个函数放到main.c初始化时单独执行,也是可以执行通过的,如下:

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_QUADSPI_Init();
  MX_TIM1_Init();
  val = HAL_RCC_GetHCLKFreq();   //这样执行就能通过,奇怪
  MX_USART2_UART_Init();

使用特权

评论回复

相关帖子

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

本版积分规则

446

主题

446

帖子

0

粉丝