static void SetSysClock(void)
{__IO uint32_t StartUpCounter = 0, HSEStatus = 0;/* SYSCLK, HCLK, PCLK configuration ----------------------------------------*//* Enable HSE */
//  RCC->CR |= ((uint32_t)RCC_CR_HSEON);//使用外部8M时钟RCC->CR |= ((uint32_t)RCC_CR_HSION);//使用内部8M时钟/* Wait till HSE is ready and if Time out is reached exit */do{
//    HSEStatus = RCC->CR & RCC_CR_HSERDY;//使用外部8M时钟HSEStatus = RCC->CR & RCC_CR_HSIRDY;//使用内部8M时钟StartUpCounter++;  }
//  while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));//使用外部8M时钟while((HSEStatus == 0) && (StartUpCounter != HSI_STARTUP_TIMEOUT));//使用内部8M时钟
// if ((RCC->CR & RCC_CR_HSERDY) != RESET)//使用外部8M时钟if ((RCC->CR & RCC_CR_HSIRDY) != RESET)//使用内部8M时钟{HSEStatus = (uint32_t)0x01;}else{HSEStatus = (uint32_t)0x00;}  if (HSEStatus == (uint32_t)0x01){/* Enable Prefetch Buffer */FLASH->ACR |= FLASH_ACR_PRFTBE;FLASH->ACR |= (uint32_t)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:  = HSE *  6 = 48 MHz */
//    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));//使用外部8M时钟//   RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL6);//使用外部8M时钟//  RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1|RCC_CFGR_PLLXTPRE_PREDIV1_Div2 | RCC_CFGR_PLLMULL9);//内外都不使用RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2|RCC_CFGR_PLLXTPRE_PREDIV1|RCC_CFGR_PLLMULL9);//使用内部8M时钟/* 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)0x08){}}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 */}
}

/******************************************************************************/
/*                                                                            */
/*                         Reset and Clock Control                            */
/*                                                                            */
/******************************************************************************//********************  Bit definition for RCC_CR register  ********************/
#define  RCC_CR_HSION                        ((uint32_t)0x00000001)        /*!< Internal High Speed clock enable */
#define  RCC_CR_HSIRDY                       ((uint32_t)0x00000002)        /*!< Internal High Speed clock ready flag */
#define  RCC_CR_HSITRIM                      ((uint32_t)0x000000F8)        /*!< Internal High Speed clock trimming */
#define  RCC_CR_HSICAL                       ((uint32_t)0x0000FF00)        /*!< Internal High Speed clock Calibration */
#define  RCC_CR_HSEON                        ((uint32_t)0x00010000)        /*!< External High Speed clock enable */
#define  RCC_CR_HSERDY                       ((uint32_t)0x00020000)        /*!< External High Speed clock ready flag */
#define  RCC_CR_HSEBYP                       ((uint32_t)0x00040000)        /*!< External High Speed clock Bypass */
#define  RCC_CR_CSSON                        ((uint32_t)0x00080000)        /*!< Clock Security System enable */
#define  RCC_CR_PLLON                        ((uint32_t)0x01000000)        /*!< PLL enable */
#define  RCC_CR_PLLRDY                       ((uint32_t)0x02000000)        /*!< PLL clock ready flag *//*******************  Bit definition for RCC_CFGR register  *******************/
/*!< SW configuration */
#define  RCC_CFGR_SW                         ((uint32_t)0x00000003)        /*!< SW[1:0] bits (System clock Switch) */
#define  RCC_CFGR_SW_0                       ((uint32_t)0x00000001)        /*!< Bit 0 */
#define  RCC_CFGR_SW_1                       ((uint32_t)0x00000002)        /*!< Bit 1 */#define  RCC_CFGR_SW_HSI                     ((uint32_t)0x00000000)        /*!< HSI selected as system clock */
#define  RCC_CFGR_SW_HSE                     ((uint32_t)0x00000001)        /*!< HSE selected as system clock */
#define  RCC_CFGR_SW_PLL                     ((uint32_t)0x00000002)        /*!< PLL selected as system clock *//*!< SWS configuration */
#define  RCC_CFGR_SWS                        ((uint32_t)0x0000000C)        /*!< SWS[1:0] bits (System Clock Switch Status) */
#define  RCC_CFGR_SWS_0                      ((uint32_t)0x00000004)        /*!< Bit 0 */
#define  RCC_CFGR_SWS_1                      ((uint32_t)0x00000008)        /*!< Bit 1 */#define  RCC_CFGR_SWS_HSI                    ((uint32_t)0x00000000)        /*!< HSI oscillator used as system clock */
#define  RCC_CFGR_SWS_HSE                    ((uint32_t)0x00000004)        /*!< HSE oscillator used as system clock */
#define  RCC_CFGR_SWS_PLL                    ((uint32_t)0x00000008)        /*!< PLL used as system clock */

STM32F030F4P6单片机由外部时钟改为内部时钟相关推荐

  1. hive外部表改为内部表_3000字揭秘Greenplum的外部数据加载——外部表

    外部表是greenplum的一种数据表,它与普通表不同的地方是:外部表是用来访问存储在greenplum数据库之外的数据.如普通表一样,可使用SQL对外部表进行查询和插入操作.外部表主要用于Green ...

  2. hive外部表改为内部表_hive内部表外部表介绍

    未被external修饰的是内部表(managed table),被external修饰的为外部表(external table): 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理: ...

  3. HR8P506,时钟配置,一切从内部时钟HRC开始.

    首先,在进行这项工作之前,建议大伙先熟读HR8P506手册的系统时钟章节. 前面我们已经进行过点灯工作了,为什么我们什么都没有配置单片机仍然会跑呢? 好吧,一般单片机从上电开始就会默认开启内部IRC时 ...

  4. 单片机之外部时钟与内部时钟

    1.晶振 首先,单片机能正常工作的必要条件之一就是时钟电路,时钟是单片机的脉搏,是单片机的驱动源,单片机工作是在统一的时钟脉冲控制下一拍一拍进行工作的.这个脉冲由单片机控制器中的时序电路发出的.所以单 ...

  5. pic单片机内部时钟校准c语言,实例讲解PIC单片机的时钟设置

    什么时钟? 首先我们先讲讲什么是时钟.时钟就是单片机的心脏.每跳动一下.整个单片机的各个电路就同步的动作一下.就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234....然后我们全部 ...

  6. 浅谈晶振作用功能、晶体和晶振、外部时钟和内部时钟、分频倍频预分频后分频、定时器和计数器

    Fosc=frequence oscillate 晶振频率 晶振是用来起振的,只是振荡电路的一种,还有自激振荡器.电容三点式振荡器.LC振荡器.RC振荡器......其作用是通电才产生原始时钟频率,这 ...

  7. pic单片机内部时钟校准c语言,pic单片机时钟配置

    pic单片机时钟配置 已有 1687 次阅读2016-1-2 18:38 |个人分类:发现 还是PIC12F1572,某个io 输出脉冲信号.io置高,置低都是立即数给寄存器,电平竟然要16us才变化 ...

  8. 歪解单片机的时钟系统--关于内外时钟切换及时钟超频测试

    群友问过这种问题,外部接8M晶振和16M晶振有啥区别?        以我微薄的经验来看,这两个在用的时候差别不大,如果使用ST的固件库(以STM32F103为例),使用8M的晶振会更方便,不用改任何 ...

  9. STM32单片机学习笔记(七)-RCC时钟控制:简单了解时钟树(一)

    写在前面:本系列内容均为自学笔记,参考资料为野火指南者开发板资料及芯片参考手册等,使用野火指南者开发板进行学习,该系列内容仅用于记录笔记,不做其他用途,笔记的内容可能会存在不准确或者错误等,如有大佬看 ...

  10. 单片机MCU外部晶振的选择

    MCU有各种各样的外设:定时器和看门狗.UART收发器.I2C总线.SPI总线.GPIO.ADC.SW-DP调试端口.温度传感器等,之所以能有条不紊的稳定运行,都离不开统一的时钟.因为时钟是MCU的脉 ...

最新文章

  1. 自定义Spinner之IconSpinner
  2. WinForm开发框架资料积累
  3. 5月TIOBE编程榜,Java、PHP降级,C#再度上升!
  4. mongodb 主键_MongoDB主键是您的朋友
  5. android gb2312 utf-8,不同编码页面之间用form传值出现乱码问题解决方案 utf-8 到 gb2312...
  6. rhel7 mysql无法运行_redhat7下mysql5.7.12重启电脑后起不来问题
  7. 国产数据库产业百花齐放 “1+4+4+N”格局形成
  8. linux 文件乱码_RedHatlinux系统虚机启动后/etc/fstab中的文件系统未能挂载上
  9. python编程例子-几个python编程例子
  10. Ajax-jsonp跨域
  11. Unity3D基础9:获取鼠标键盘输入
  12. char转化为cstring_C语言100题集合001-将一个数字字符串转换为一个整数
  13. PyPI可以使用的几个国内源
  14. 浅谈算法书籍学习路线
  15. 基于pytorch训练的VGG16神经网络模型完成手写数字的分割与识别
  16. Linux查看网卡ip地址,查看网卡IP地址
  17. java graphics 模糊_使用Graphics2D模糊Java背景
  18. Qt编写安防视频监控系统6-面板开关
  19. 从零开始写一个Jison解析器(7/10):解析器生成器 `parser generator` 的迭代式开发流程
  20. 原来发朋友圈还有这讲究,难怪我的朋友圈没人看

热门文章

  1. GNN-图卷积模型-2017:GAT【消息传递(前向传播):聚合函数+更新函数】【聚合函数:attention(邻域所有节点根据注意力机制进行加权)】【训练更新函数的参数】【直推式归纳式】【同质图】
  2. 仿淘宝,京东红包雨(基于Phaser框架)
  3. 小红书6.18种草拔草投放攻略
  4. sinx/cosx的泰勒展开式与库函数的比较
  5. 计算机word的关闭怎么办,电脑无法打开Word提示已停止工作并自动退出怎么办
  6. TVS管选型详细流程
  7. 基本社会里模型的源码分析
  8. 安装AutoCAD 2015提示net 4.5错误的解决方法
  9. Netcraft:2017年7月Web服务器调查报告
  10. kernel/Makefile:971: recipe for target ‘prepare3‘ failed