OpenEdv-开源电子网

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

stm32用内部8M时钟时候,原子哥给的延时程序delay()是不可以用了 吗?还有如果用8M内部晶振时候程序该怎么写啊 ?

[复制链接]

21

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
金钱
264
注册时间
2013-9-17
在线时间
29 小时
发表于 2014-7-11 13:46:34 | 显示全部楼层 |阅读模式
5金钱
stm32用内部8M时钟时候,原子哥给的延时程序delay()是不可以用了 吗?还有如果用8M内部晶振时候程序该怎么写啊 ?

最佳答案

查看完整内容[请看2#楼]

内部晶振需要先二分频,然后再倍频,最高只能达到64M,以下是参考代码 //配置系统时钟为64MHZ //HCLK:64MHZ //PCLK2:64MHZ //PCLK1:32MHZ void ConfigSystemClockToHSI(void){ RCC_DeInit();      RCC_HSICmd(ENABLE); //开启内部高速振荡器 while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET){//等待HSI就緒 }     RCC_HCLKConfig ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-7-11 13:46:35 | 显示全部楼层
内部晶振需要先二分频,然后再倍频,最高只能达到64M,以下是参考代码


//配置系统时钟为64MHZ
//HCLK:64MHZ
//PCLK2:64MHZ
//PCLK1:32MHZ
void ConfigSystemClockToHSI(void){

RCC_DeInit(); 
    RCC_HSICmd(ENABLE); //开启内部高速振荡器
while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET){//等待HSI就緒
}

    RCC_HCLKConfig(RCC_SYSCLK_Div1);  //设置AHB时钟(HCLK) RCC_SYSCLK_Div1 AHB时钟等于系统时钟
    RCC_PCLK2Config(RCC_HCLK_Div1);   //设置高速APB时钟(PCLK2) RCC_HCLK_Div1 APB2等于HCLK
    RCC_PCLK1Config(RCC_HCLK_Div2); //设置低速APB时钟(PCLK1) RCC_HCLK_Div2 APB1等于HCLK/2

    /* Enable refetch Buffer */
    FLASH->ACR |= FLASH_ACR_PRFTBE;

    /* Flash 2 wait state */
    FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
    FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;  

//FLASH_SetLatency(FLASH_Latency_2); //设置FLASH延时两个周期
   // FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //使能预取指令缓冲器

RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_16);//内部8M二分频作为PLL时钟源,PLL倍频16 LLCLK=64MHZ
RCC_PLLCmd(ENABLE);  //使能PLL时钟
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ; 

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //选择PLLCLK为系统时钟
  while(RCC_GetSYSCLKSource() != 0x08);     //等待PLLCLK设置为系统时钟
}

延时函数可以用的:delay_init(64);这里写64就OK了
站在巨人的肩膀上不断的前进。。。
回复

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2014-7-11 14:51:02 | 显示全部楼层
9倍的关系,你分频除以9倍就好了
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复

使用道具 举报

21

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
金钱
264
注册时间
2013-9-17
在线时间
29 小时
 楼主| 发表于 2014-7-11 23:04:28 | 显示全部楼层
能否发个完整的用内部晶振的实例给我啊 万分感谢 我有快板子没外部8M晶振 所以只有用内部晶振  QQ1172153216万分感谢 好人一生平安
回复

使用道具 举报

21

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
金钱
264
注册时间
2013-9-17
在线时间
29 小时
 楼主| 发表于 2014-7-11 23:05:39 | 显示全部楼层
回复【3楼】xiaoyan:
---------------------------------
能否发个完整的用内部晶振的实例给我啊 万分感谢 我有快板子没外部8M晶振 所以只有用内部晶振  QQ1172153216万分感谢 好人一生平安
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-6 05:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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