打印
[STM32H7]

CubeMX 生成的 USB HID 程序,芯片是 STM32H750VBT6

[复制链接]
3112|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhang..yb|  楼主 | 2019-1-30 13:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};

  /**Configure the main internal regulator output voltage
  */
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

  while ((PWR->D3CR & (PWR_D3CR_VOSRDY)) != PWR_D3CR_VOSRDY) <--  程序卡在这条
  {
   
  }

哪里出了问题?

沙发
zhang..yb|  楼主 | 2019-1-30 14:03 | 只看该作者
CubeMX 是最新版的  V5.01

使用特权

评论回复
板凳
LamBoo| | 2019-3-2 16:15 | 只看该作者
我使用的也是 STM32H750VBT6  现在点一个LED 的程序也卡在这里,你这个问题解决了么

使用特权

评论回复
地板
vvben| | 2019-3-8 18:19 | 只看该作者
这么高端,做什么产品?
是编译的时候出问题还是运行的时候出问题?

使用特权

评论回复
5
zhang..yb|  楼主 | 2019-4-4 10:17 | 只看该作者
H743 的范例是可以用在 H750 芯片上,我运行成功了。

使用特权

评论回复
6
zhang..yb|  楼主 | 2019-4-4 10:18 | 只看该作者
CubeMX 是有问题的

使用特权

评论回复
7
pedropeng| | 2019-4-18 15:19 | 只看该作者
楼主好,问题解决了吗?我也是卡到这个地方了,为了避免是自己的代码问题,我把所有代码删除用cubemx自己生成的点亮一个led代码,也是卡到这了

使用特权

评论回复
8
pedropeng| | 2019-4-18 15:28 | 只看该作者
只要主频超过200MHz就会卡到这,因为超过200MHz后vos等级会设置非vos3,即:
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);或
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
通过禁用ldo可以跳过这个限制,即达到400MHz,具体做法是:
更改电压等级vos后再执行 PWR->CR3 = 0x02;即可,但一直不明白为什么就OK了,有点稀里糊涂的,按手册上说的PWR->CR3 = 0x02是复位后默认的设置,为什么我再设置一遍就OK了呢,为什么这么简单的是cubemx不自己做呢,肯定有问题。

使用特权

评论回复
9
pedropeng| | 2019-4-18 15:37 | 只看该作者
给我的感觉是vos等级改不了,因为复位后系统默认vos等级是3,一旦程序里更改更高电压等级,程序就会一直等待vosrdy这一位。

使用特权

评论回复
10
pedropeng| | 2019-4-18 15:43 | 只看该作者
在ldo禁用的时候要注意,禁用ldo的代码只能跑一次,跑完后删除禁用代码再跑,不然有可能会复用你的swdio管脚导致无法通过stlink烧写程序,这个问题出现的很莫名其妙,我的一块板子就这样费了,还得从新跳线boot0管脚才能擦除程序

使用特权

评论回复
11
zhxi| | 2019-7-29 16:49 | 只看该作者
pedropeng 发表于 2019-4-18 15:43
在ldo禁用的时候要注意,禁用ldo的代码只能跑一次,跑完后删除禁用代码再跑,不然有可能会复用你的swdio管 ...

按复位以后能够重新擦除吗?可以试试复位管脚

使用特权

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

本版积分规则

103

主题

441

帖子

1

粉丝