STM32F030F4P6单片机由外部时钟改为内部时钟
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单片机由外部时钟改为内部时钟相关推荐
- hive外部表改为内部表_3000字揭秘Greenplum的外部数据加载——外部表
外部表是greenplum的一种数据表,它与普通表不同的地方是:外部表是用来访问存储在greenplum数据库之外的数据.如普通表一样,可使用SQL对外部表进行查询和插入操作.外部表主要用于Green ...
- hive外部表改为内部表_hive内部表外部表介绍
未被external修饰的是内部表(managed table),被external修饰的为外部表(external table): 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理: ...
- HR8P506,时钟配置,一切从内部时钟HRC开始.
首先,在进行这项工作之前,建议大伙先熟读HR8P506手册的系统时钟章节. 前面我们已经进行过点灯工作了,为什么我们什么都没有配置单片机仍然会跑呢? 好吧,一般单片机从上电开始就会默认开启内部IRC时 ...
- 单片机之外部时钟与内部时钟
1.晶振 首先,单片机能正常工作的必要条件之一就是时钟电路,时钟是单片机的脉搏,是单片机的驱动源,单片机工作是在统一的时钟脉冲控制下一拍一拍进行工作的.这个脉冲由单片机控制器中的时序电路发出的.所以单 ...
- pic单片机内部时钟校准c语言,实例讲解PIC单片机的时钟设置
什么时钟? 首先我们先讲讲什么是时钟.时钟就是单片机的心脏.每跳动一下.整个单片机的各个电路就同步的动作一下.就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234....然后我们全部 ...
- 浅谈晶振作用功能、晶体和晶振、外部时钟和内部时钟、分频倍频预分频后分频、定时器和计数器
Fosc=frequence oscillate 晶振频率 晶振是用来起振的,只是振荡电路的一种,还有自激振荡器.电容三点式振荡器.LC振荡器.RC振荡器......其作用是通电才产生原始时钟频率,这 ...
- pic单片机内部时钟校准c语言,pic单片机时钟配置
pic单片机时钟配置 已有 1687 次阅读2016-1-2 18:38 |个人分类:发现 还是PIC12F1572,某个io 输出脉冲信号.io置高,置低都是立即数给寄存器,电平竟然要16us才变化 ...
- 歪解单片机的时钟系统--关于内外时钟切换及时钟超频测试
群友问过这种问题,外部接8M晶振和16M晶振有啥区别? 以我微薄的经验来看,这两个在用的时候差别不大,如果使用ST的固件库(以STM32F103为例),使用8M的晶振会更方便,不用改任何 ...
- STM32单片机学习笔记(七)-RCC时钟控制:简单了解时钟树(一)
写在前面:本系列内容均为自学笔记,参考资料为野火指南者开发板资料及芯片参考手册等,使用野火指南者开发板进行学习,该系列内容仅用于记录笔记,不做其他用途,笔记的内容可能会存在不准确或者错误等,如有大佬看 ...
- 单片机MCU外部晶振的选择
MCU有各种各样的外设:定时器和看门狗.UART收发器.I2C总线.SPI总线.GPIO.ADC.SW-DP调试端口.温度传感器等,之所以能有条不紊的稳定运行,都离不开统一的时钟.因为时钟是MCU的脉 ...
最新文章
- 自定义Spinner之IconSpinner
- WinForm开发框架资料积累
- 5月TIOBE编程榜,Java、PHP降级,C#再度上升!
- mongodb 主键_MongoDB主键是您的朋友
- android gb2312 utf-8,不同编码页面之间用form传值出现乱码问题解决方案 utf-8 到 gb2312...
- rhel7 mysql无法运行_redhat7下mysql5.7.12重启电脑后起不来问题
- 国产数据库产业百花齐放 “1+4+4+N”格局形成
- linux 文件乱码_RedHatlinux系统虚机启动后/etc/fstab中的文件系统未能挂载上
- python编程例子-几个python编程例子
- Ajax-jsonp跨域
- Unity3D基础9:获取鼠标键盘输入
- char转化为cstring_C语言100题集合001-将一个数字字符串转换为一个整数
- PyPI可以使用的几个国内源
- 浅谈算法书籍学习路线
- 基于pytorch训练的VGG16神经网络模型完成手写数字的分割与识别
- Linux查看网卡ip地址,查看网卡IP地址
- java graphics 模糊_使用Graphics2D模糊Java背景
- Qt编写安防视频监控系统6-面板开关
- 从零开始写一个Jison解析器(7/10):解析器生成器 `parser generator` 的迭代式开发流程
- 原来发朋友圈还有这讲究,难怪我的朋友圈没人看
热门文章
- GNN-图卷积模型-2017:GAT【消息传递(前向传播):聚合函数+更新函数】【聚合函数:attention(邻域所有节点根据注意力机制进行加权)】【训练更新函数的参数】【直推式归纳式】【同质图】
- 仿淘宝,京东红包雨(基于Phaser框架)
- 小红书6.18种草拔草投放攻略
- sinx/cosx的泰勒展开式与库函数的比较
- 计算机word的关闭怎么办,电脑无法打开Word提示已停止工作并自动退出怎么办
- TVS管选型详细流程
- 基本社会里模型的源码分析
- 安装AutoCAD 2015提示net 4.5错误的解决方法
- Netcraft:2017年7月Web服务器调查报告
- kernel/Makefile:971: recipe for target ‘prepare3‘ failed