OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3937|回复: 10

关于STM32F072启动的问题,MCU不能工作

[复制链接]

5

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2018-1-22
在线时间
27 小时
发表于 2019-6-6 20:01:24 | 显示全部楼层 |阅读模式
[mw_shl_code=c,true]static void SetSysClock(void)
{
  __IO uint32_t StartUpCounter = 0, HSEStatus = 0;
  
  /* SYSCLK, HCLK, PCLK configuration ----------------------------------------*/
  /* Enable HSE */   
//RCC->CR |= ((uint32_t)RCC_CR_HSEON);
         RCC->CR &= ~((uint32_t)RCC_CR_HSEON);
  /* Wait till HSE is ready and if Time out is reached exit */
do
  {
    HSEStatus = RCC->CR & RCC_CR_HSERDY;
    StartUpCounter++;  
  } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

  if ((RCC->CR & RCC_CR_HSERDY) != RESET)
  {
    HSEStatus = (uint32_t)0x01;
  }
  else
  {
    HSEStatus = (uint32_t)0x00;
  }  

  if (HSEStatus == (uint32_t)0x01)
  {
    /* Enable Prefetch Buffer and set Flash Latency */
    FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY;

    /* HCLK = SYSCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
      
    /* PCLK = HCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE_DIV1;

    /* PLL configuration = HSI * 6 = 48 MHz */
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL6);
            
    /* Enable PLL */
    RCC->CR |= RCC_CR_PLLON;

    /* Wait till PLL is ready */
    while((RCC->CR & RCC_CR_PLLRDY) == 0)
    {
    }

    /* Select PLL as system clock source */
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
    RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;   

    /* Wait till PLL is used as system clock source */
    while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL)
    {
    }
  }
  else
  { /* If HSE fails to start-up, the application will have wrong clock
         configuration. User can add here some code to deal with this error */
  }  
}[/mw_shl_code]由于所用的DEMO版需要,我把第7行改为第8行 ,程序一直在第10行到第14行的地方循环执行,MCU无法正常工作,请问各位问题出在哪?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2018-1-22
在线时间
27 小时
 楼主| 发表于 2019-6-6 20:05:07 | 显示全部楼层
回复 支持 反对

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2019-6-6 20:18:08 | 显示全部楼层
你把HSE关闭了,然后又等待HSE就绪,肯定是一直死循环了,直到等待超时。我估计你是要使用内部的HSI。
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2018-1-22
在线时间
27 小时
 楼主| 发表于 2019-6-6 21:42:46 | 显示全部楼层
Electronic 发表于 2019-6-6 20:18
你把HSE关闭了,然后又等待HSE就绪,肯定是一直死循环了,直到等待超时。我估计你是要使用内部的HSI。

对对,我想用HSI,但是不知道为什么一直死循环,多指教
回复 支持 反对

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2019-6-7 07:36:56 | 显示全部楼层
用CUBE,配好时钟树的,然后可以生成代码的吧
RT-Thread RTOS 音频,WIFI,蓝牙
回复 支持 反对

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2019-6-8 01:52:11 | 显示全部楼层
qq4056 发表于 2019-6-6 21:42
对对,我想用HSI,但是不知道为什么一直死循环,多指教

1、屏蔽do{}while;
2、复制if (HSEStatus == (uint32_t)0x01)里的代码到到底下的else,然后修改PLL时钟源为HSI的2分频
3、修改PLL倍频为12
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2018-1-22
在线时间
27 小时
 楼主| 发表于 2019-6-8 09:49:20 | 显示全部楼层
aozima 发表于 2019-6-7 07:36
用CUBE,配好时钟树的,然后可以生成代码的吧

CUBE不知道怎么使用,现在都还在用库
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2019-6-22
在线时间
11 小时
发表于 2019-7-24 15:20:51 | 显示全部楼层
你的解决了吗?我现在也遇到相同的问题了,启动不了
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2018-1-22
在线时间
27 小时
 楼主| 发表于 2019-8-5 20:12:50 | 显示全部楼层
mast 发表于 2019-7-24 15:20
你的解决了吗?我现在也遇到相同的问题了,启动不了

已经解决了,需要的话我发给你
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2018-1-22
在线时间
27 小时
 楼主| 发表于 2019-8-5 20:14:48 | 显示全部楼层
mast 发表于 2019-7-24 15:20
你的解决了吗?我现在也遇到相同的问题了,启动不了

解决了,需要的话我发给你
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2020-3-5
在线时间
28 小时
发表于 2020-10-20 09:29:45 | 显示全部楼层
@q4056  怎么解决的呀?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-4 13:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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