7487|3

13

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于STM32F051 固件库IIC中IIC的时钟设置 [复制链接]

现在想用F0里面固件库的IIC。但是在里面发现了一个问题,就是不会计算IIC的时钟设置,官方有计算的工具,
在工具里有1行不明白该怎么写。。我的片子是stm32f051。晶振是8MHZ的,然后倍频到48MHZ。那么在计算工具里的这一行我是写8000还是48000

。还有我看到有些例程里面还有这么1句。是不是 我用系统的SystemInit();这一句就不用下面这一句话了?
RCC_I2CCLKConfig(RCC_I2C1CLK_HSI);//HSI 8MHz
我自己的初始化时钟是不是要加上上面那句?
  1. void InitialSysClock(void)
  2. {
  3.         /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/   
  4.         /* RCC system reset(for debug purpose) */
  5.         RCC_DeInit();         //设置RCC寄存器重新设置为默认值

  6.         /* Enable HSE */
  7.         RCC_HSEConfig(RCC_HSE_ON); //打开外部高速时钟晶振

  8.         /* Wait till HSE is ready */
  9.         HSEStartUpStatus = RCC_WaitForHSEStartUp();          //等待外部高速时钟晶振工作

  10.         if (HSEStartUpStatus == SUCCESS)  //外部就绪
  11.         {
  12.                 /* Enable Prefetch Buffer */
  13.                 FLASH_PrefetchBufferCmd(ENABLE);

  14.                 /* Flash 1 wait state */
  15.                 FLASH_SetLatency(FLASH_Latency_1);

  16.                 /*************************************************************************/
  17.                 /*   HSE=8MHz,HCLK=48MHz,PCLK2=48MHz                         */
  18.                 /*************************************************************************/

  19.                 /* HCLK = SYSCLK */
  20.                 RCC_HCLKConfig(RCC_SYSCLK_Div1);          //设置AHB时钟不分频
  21.                 /* PCLK= HCLK */
  22.                 RCC_PCLKConfig(RCC_HCLK_Div1);                //设置APB时钟不分频
  23.                

  24.                 RCC_ADCCLKConfig(RCC_ADCCLK_PCLK_Div4);        //设置ADC时钟2分频 12Mhz

  25.                 /* PLLCLK = 4MHz * 12 = 48 MHz */
  26.                 RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);
  27.                


  28.                 /* Enable PLL */
  29.                 RCC_PLLCmd(ENABLE);         //使能PLL
  30.                 /* Wait till PLL is ready */
  31.                 while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {
  32.                 }
  33.                 /* Select PLL as system clock source */
  34.                 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

  35.                 /* Wait till PLL is used as system clock source */
  36.                 while (RCC_GetSYSCLKSource() != 0x08) {
  37.                 }
  38.         }
  39. //M0只有1个中断优先级
  40. }
复制代码


此帖出自stm32/stm8论坛

最新回复

谢谢分享  详情 回复 发表于 2019-4-13 10:29
点赞 关注(1)
 

回复
举报

3

帖子

1

TA的资源

一粒金砂(初级)

沙发
 
8000
此帖出自stm32/stm8论坛

点评

嗯,已经完全明白了,谢谢了~  详情 回复 发表于 2014-10-18 23:04
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

嗯,已经完全明白了,谢谢了~
此帖出自stm32/stm8论坛
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

4
 
谢谢分享
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表