novoton-msys_init函数
配置相应时钟后,可以打印输出:
// 配置PLL
sta = CLK_EnablePLL(CLK_PLLCTL_PLLSRC_HXT, 144000000);
/***********************************************************************/
printf("HXT:%d.\n",CLK_GetHXTFreq());
printf("LXT:%d.\n",CLK_GetLXTFreq());
printf("PCLK0:%d.\n",CLK_GetPCLK0Freq());
printf("PCLK1:%d.\n",CLK_GetPCLK1Freq());
printf("HCLK:%d.\n",CLK_GetHCLKFreq());
printf("CPUCLK:%d.\n",CLK_GetCPUFreq());
printf("PLL:%d.\n",sta);
HXT和LXT需使能才有值。
结论:
HXT可以在config区进行使能。所以说进入程序时已经启动。
但PLL只能由用户开启,如果用户不开启,CPUCLK、HCLK、PCLK0、PCLK1的频率只能达到HXT的12M或者是HIRC的22.1184M , PLL = 0;
开启PLL的频率可以达到250M。(实测开到270M还行,但是272M有时可以,有时卡死!)
还有一种情况,config没有配置HXT时,进入程序虽然可以起振,但是CPUCLK、HCLK、PCLK0、PCLK1却只能使用HIRC的一半 11.0592M ,PLL正常,但不能用。(但是配置HXT引脚时,一切正常!)
还有个问题,PLL配置为最低值50M,CPUCLK、HCLK、PCLK0、PCLK1也能达到72M,为什么?
1 //初始化系统时钟 2 void msys_init(void) 3 { 4 // 解锁保护寄存器 5 SYS_UnlockReg(); 6 7 //下面代码config区已经配置启动好了,同时配置PLL时也重新配置,此处没必要多余 8 // 使能HXT时钟 (external XTAL 12MHz) 9 //CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk); 10 // 等待时钟稳定 11 //CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk); 12 13 // 配置PLL 14 sta = CLK_EnablePLL(CLK_PLLCTL_PLLSRC_HXT, 72000000); 15 // 选择PLL的2分频作为HCLK时钟源 16 CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_PLL, CLK_CLKDIV0_HCLK(2)); 17 // 选择内核时钟为PLL 18 CLK_SetCoreClock(72000000); 19 // 更新SystemCoreClock值 20 SystemCoreClockUpdate(); 21 // 加锁保护寄存器 22 SYS_LockReg(); 23 }
更新:
1 // 初始化系统时钟 2 void msys_init(void) 3 { 4 // 解锁保护寄存器 5 SYS_UnlockReg(); 6 7 // 下面代码config区已经配置启动好了,同时配置PLL时也重新配置 8 // 使能HXT时钟 (external XTAL 12MHz) 9 CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk); 10 // 等待时钟稳定 11 CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk); 12 13 // 配置PLL 14 //CLK_EnablePLL(CLK_PLLCTL_PLLSRC_HXT, 144000000); 15 // 选择PLL的2分频作为HCLK时钟源 16 //CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_PLL, CLK_CLKDIV0_HCLK(2)); 17 18 // 配置内核时钟,上两个语句本函数已实现,未失能HIRC 19 CLK_SetCoreClock(72000000); 20 // 等待时钟稳定 21 CLK_WaitClockReady(CLK_STATUS_PLLSTB_Msk); 22 23 // 更新SystemCoreClock值 24 SystemCoreClockUpdate(); 25 26 // 加锁保护寄存器 27 SYS_LockReg(); 28 }
转载于:https://www.cnblogs.com/llw2017/p/9063882.html
novoton-msys_init函数相关推荐
- 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...
- Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译
Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...
- C++ 笔记(34)— C++ exit 函数
当遇到 main 函数中的 return 语句时,C++ 程序将停止执行.但其他函数结束时,程序并不会停止.程序的控制将返回到函数调用之后的位置.然而,有时候会出现一些非常少见的情况,使得程序有必要在 ...
- C++ 笔记(30)— 友元函数与友元类
我们知道类的私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行.这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦. ...
- 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )
1. foreach 函数 foreach 函数定义如下: $(foreach <var>,<list>,<text>) 函数的功能是:把参数 <list&g ...
- 浅显易懂 Makefile 入门 (06)— 文件名操作函数(dir、notdir、suffix、basename、addsuffix、addperfix、join、wildcard)
编写 Makefile 的时候,很多情况下需要对文件名进行操作.例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等. 注意:下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待. 1 ...
- Go 学习笔记(65)— Go 中函数参数是传值还是传引用
Go 语言中,函数参数传递采用是值传递的方式.所谓"值传递",就是将实际参数在内存中的表示逐位拷贝到形式参数中.对于像整型.数组.结构体这类类型,它们的内存表示就是它们自身的数据内 ...
- Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法
函数在 Go 语言中属于"一等公民(First-Class Citizen)"拥有"一等公民"待遇的语法元素可以如下使用 可以存储在变量中: 可以作为参数传递给 ...
- C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明
带形参的 main 函数,如 int main( int argc, char* argv[], char **env ) 是 UNIX .Linux 以及 Mac OS 操作系统中 C/C++ 的 ...
- OpenCV 笔记(09)— 常用的数据结构和函数(Vec、Point、Scalar、Size、Rect、cvtColor)
1. Vec 对象类型 Vec 是一个主要用于数值向量的模板类.我们可以定义向量的类型和组件的数量: Vec<double, 19> myVector 我们还可以使用任何的预定义类型: t ...
最新文章
- 前后端分离开发,RESTful 接口应该这样设计
- mysql global index_Oracle中addsplit partition对globallocal index的影响
- MySQL对一行多列求和
- python怎么改背景_python IDE背景怎么改
- python核心编程怎么做_Python核心编程:8个实践性建议
- 【Webpack】TypeError: Cannot read property ‘tap‘ of undefined at HtmlWebpackPlugin.
- LeetCode(8) - String to Integer (atoi)
- 安装RabbitMQ无法访问(http://localhost:15672)解决方案
- 《凤凰项目 一个IT运维的传奇故事》读后感
- python实现税后工资_python税后工资计算器
- Python 【爬虫3】_微信小程序_小游戏数据助手数据爬取
- 波段测试软件,超好用的波段副图(通达信公式 副图 源码 测试图)
- 如何把canvas元素作为网站背景总结详解
- 51单片机(入门保姆级教程)——LED闪烁及流水灯
- 笔记本电脑卡顿问题原因
- CGB2104-Day20
- java语音播报源代码_详解Android 语音播报实现方案(无SDK)
- 北邮矩阵论- 第1章 1.1线性空间
- 创维E900-S-普通版-MV100纯净通刷_卡刷固件包
- 微信公众号消息推送【专属早安】,五分钟快速实现,不会编程也可以 【--网站已修复】
热门文章
- 201671010443 徐明锦 词频统计软件项目报告
- mysql 回滚 大小设置_MySQL事物提交与回滚
- hp打印机没有右键扫描_win10打印机右键没有‘开始扫描’的修复办法
- 怎么更改坐标轴标题access_excel图表如何修改x坐标轴数值,excel怎么设置横坐标标题...
- 20200807-玻璃涨停,隔夜低开,纯碱高开,今天晚上就是空头盛宴,43500了哈哈哈,赚钱了,别做了
- 组合优化问题的典型事例
- dota2自走棋 服务器没响应,dota2自走棋国服务器
- CSDN优质博主推荐(C/C++领域)-持续更新中
- python 画图十大工具_python实现画图工具
- linux aria2 使用教程,Aria2使用详细教程