你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32 cubemx 使用问题

[复制链接]
and-2002030 提问时间:2017-5-12 11:12 /
我使用的是stm32 cubemx 生成程序,CUBEMX版本是4.20 ,HAL是1.40.发现有几个问题,问题1是在时钟配置方面时,会报错进入死循环Error_Handler();     RCC_OscInitStruct.OscillatorType =RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE;改为
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
就好了。
这个是找到的原因,问题2 是HAL_DELAY()这个延时当使用72M系统时钟时竟然是9MS,而使用8M系统时钟是1MS。
各位有碰到这个问题吗。
代码配置都是自动生成的。


收藏 1 评论13 发布时间:2017-5-12 11:12

举报

13个回答
回答时间:2017-5-12 11:15:07
HAL_DELAY()这个问题倒是没有遇到过,楼主可以把工程传上来一起研究一下。
MrJiu 回答时间:2017-5-12 11:19:09
是你的时钟配置出问题了,你可以看一下cubemx的时钟配置部分,因为HAL_DELAY()硬件实现的延时,滴答时钟的中断里面会调用HAL_IncTick();滴答时钟中断默认都是1ms,所以猜测是你的时钟配置出问题了!!!!
and-2002030 回答时间:2017-5-12 11:21:24
将代码上传,自己只加了几句点灯代码。

LED2.rar

下载

3.1 MB, 下载次数: 6, 下载积分: ST金币 -1

yukaigogogo 回答时间:2017-5-12 11:46:39
把你的时钟树配置贴出来
and-2002030 回答时间:2017-5-12 12:43:46
时钟配置截图如下
无标题.jpg
Paderboy 回答时间:2017-5-12 12:49:23
建议更新到最新的CUBEMX版本是4.20.1  4.20的配置HSE bug比较无语。。。
and-2002030 回答时间:2017-5-12 12:56:03
谢谢,我也有考虑,所以准备更新试试
and-2002030 回答时间:2017-5-12 13:54:41
使用V4.21版本,第一个问题不会出现了。但延时不准的问题还在
and-2002030 回答时间:2017-5-12 13:58:53
void SystemClock_Config(void)
{

  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;

    /**Initializes the CPU, AHB and APB busses clocks
    */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

    /**Initializes the CPU, AHB and APB busses clocks
    */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

    /**Configure the Systick interrupt time
    */
  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

    /**Configure the Systick
    */
  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

  /* SysTick_IRQn interrupt configuration */
  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版