硬汉嵌入式论坛

 找回密码
 立即注册
查看: 558|回复: 15
收起左侧

[STM32H7] HAL库tick时基不对

[复制链接]

5

主题

23

回帖

38

积分

新手上路

积分
38
发表于 2023-6-1 14:33:44 | 显示全部楼层 |阅读模式
  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);//选择系统时钟源600MHz
  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/3000);   //1毫秒产生一次中断
  NVIC_SetPriority(SysTick_IRQn, 15);
这样除3000才是1ms的时基,新手求救

回复

使用道具 举报

5

主题

23

回帖

38

积分

新手上路

积分
38
 楼主| 发表于 2023-6-1 14:34:02 | 显示全部楼层
使用STM32H7B0VBT6芯片
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2023-6-1 14:57:30 | 显示全部楼层
可以考虑直接CubeMX生成个代码,测试下正常不,然后排查自己的配置。
回复

使用道具 举报

75

主题

681

回帖

906

积分

金牌会员

积分
906
发表于 2023-6-1 14:59:04 | 显示全部楼层
初始化时钟之后在初始化Systick
回复

使用道具 举报

5

主题

23

回帖

38

积分

新手上路

积分
38
 楼主| 发表于 2023-6-1 17:15:53 | 显示全部楼层
eric2013 发表于 2023-6-1 14:57
可以考虑直接CubeMX生成个代码,测试下正常不,然后排查自己的配置。

直接生成的也是这样
回复

使用道具 举报

5

主题

23

回帖

38

积分

新手上路

积分
38
 楼主| 发表于 2023-6-1 17:16:09 | 显示全部楼层
庄永 发表于 2023-6-1 14:59
初始化时钟之后在初始化Systick

是在时钟时候初始化的
回复

使用道具 举报

5

主题

23

回帖

38

积分

新手上路

积分
38
 楼主| 发表于 2023-6-1 17:16:53 | 显示全部楼层
eric2013 发表于 2023-6-1 14:57
可以考虑直接CubeMX生成个代码,测试下正常不,然后排查自己的配置。

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 5;
  RCC_OscInitStruct.PLL.PLLN = 112;
  RCC_OscInitStruct.PLL.PLLP = 2;
  RCC_OscInitStruct.PLL.PLLQ = 2;
  RCC_OscInitStruct.PLL.PLLR = 2;
  RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2;
  RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
  RCC_OscInitStruct.PLL.PLLFRACN = 0;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }

  /** Initializes the CPU, AHB and APB buses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
                              |RCC_CLOCKTYPE_D3PCLK1|RCC_CLOCKTYPE_D1PCLK1;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV1;
  RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
  RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7) != HAL_OK)
  {
    Error_Handler();
  }
          HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);//选择系统时钟源600MHz
  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/3000);   //1毫秒产生一次中断
  NVIC_SetPriority(SysTick_IRQn, 15);
时钟初始化代码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2023-6-2 08:32:58 | 显示全部楼层
Rose980 发表于 2023-6-1 17:15
直接生成的也是这样

把你自己添加的这三个函数删掉,CubeMX原始创建工程已经带滴答中断了。测试下正常不。

HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);//选择系统时钟源600MHz
  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/3000);   //1毫秒产生一次中断
  NVIC_SetPriority(SysTick_IRQn, 15);

像你这个注释就有点问题,SYSTICK_CLKSOURCE_HCLK如何设置的600MHz。H7B0的最高不是280MHz么

然后就是正确的理解HCLK。





回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2023-6-2 09:26:12 | 显示全部楼层
做了个工程,分享下,正常。

7B0.7z (910.7 KB, 下载次数: 1)

12.png
回复

使用道具 举报

5

主题

23

回帖

38

积分

新手上路

积分
38
 楼主| 发表于 2023-6-2 10:56:29 | 显示全部楼层
eric2013 发表于 2023-6-2 09:26
做了个工程,分享下,正常。

好的,谢谢我试一下,我的程序是烧录在外挂FLASH里的,不知道这个影响不影响
回复

使用道具 举报

5

主题

23

回帖

38

积分

新手上路

积分
38
 楼主| 发表于 2023-6-2 10:56:53 | 显示全部楼层
eric2013 发表于 2023-6-2 08:32
把你自己添加的这三个函数删掉,CubeMX原始创建工程已经带滴答中断了。测试下正常不。

HAL_SYSTICK_CL ...

因为之前超频到600了
回复

使用道具 举报

5

主题

23

回帖

38

积分

新手上路

积分
38
 楼主| 发表于 2023-6-2 11:04:45 | 显示全部楼层
eric2013 发表于 2023-6-2 09:26
做了个工程,分享下,正常。

问下老哥,你这个示波器是测量哪里的
回复

使用道具 举报

5

主题

23

回帖

38

积分

新手上路

积分
38
 楼主| 发表于 2023-6-2 11:12:22 | 显示全部楼层
eric2013 发表于 2023-6-2 09:26
做了个工程,分享下,正常。

这个工程好像选了Jlink烧录也没用啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2023-6-2 11:33:08 | 显示全部楼层
Rose980 发表于 2023-6-2 11:12
这个工程好像选了Jlink烧录也没用啊

滴答中断里面加了个IO翻转。
回复

使用道具 举报

5

主题

23

回帖

38

积分

新手上路

积分
38
 楼主| 发表于 2023-6-2 13:13:59 | 显示全部楼层
eric2013 发表于 2023-6-2 11:33
滴答中断里面加了个IO翻转。

破案了,嘉立创给我贴的8M的晶振
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2023-6-2 16:14:14 | 显示全部楼层
Rose980 发表于 2023-6-2 13:13
破案了,嘉立创给我贴的8M的晶振

这种情况的话,防不胜防。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-26 04:50 , Processed in 0.312902 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表