6869|11

1158

帖子

2

TA的资源

版主

楼主
 

MSP432学习心得之时钟配置 [复制链接]

MSP432学习心得之时钟配置
   关于建立工程和导入库函数的方法在这里不在介绍,可以参考MSP430趣谈的前几讲里面有说到,这里我们就直接开始了。
   我们第一步来看下在没有配置时钟的情况下我们直接用库函数调用查看默认情况下各个时钟的时间是多少?
   简单的代码实现,在仿真过程中,左键点击即可选中该变量,或者直接右键将各个变量添加到watch Expression,这里有一个前提就是该变量必须是全局变量,否则无法添加。
   通过该表格我们对应到我们相应的时钟中得到:
   我们很明显的看出了,当我们没有进行时钟配置的时候,除了ACLK和BCLK为32K之外,其他四个时钟源都和DCO的频率是一样的,那么我们来看一下数据手册看哪里提到了这一点。
   在这里我们对应到了系统复位时的时钟设置,在没有选择对应外部的高速或者低速时钟的时候,ACLK和BCLK是选择了REFOCLK,其他的四个时钟是选择了DCOCLK。
   这里我们查看板子的原理图可以看到相应的引脚连接。具体如下:
   我们看到输入晶振的引脚都是连接在PJ端口上面。

   错误说明,在上面使用了uint16_t的全局变量,导致了一个错误,就是当整个频率的值小于65535的时候会显示正确的频率值,当大于65535的时候将会导致数据溢出从而导致整个显示值发生错误。所以这里如果我们没有进行修改相应的数据类型,那么我们将会得到一个错误的数据。
   这里是已经对应修改过的数据类型所得到的值,在这里我们看到对应的时钟值,后面四个和我们前面测到的不一样,是3000000,也就是3MHz的频率。这里我们来解释一下前面我们测到的为什么是50880这里数字。
首先对于一个16位的寄存器,他所能够代表的数字应该是多大呢?大家可能会比较清楚的知道,16位寄存器能够表示最大的是FFFF,对应数值是65535,那我们对3_000_000 ÷ 65535 ≈ 45,然后我们用3_000_000 - 65535 × 45 = 50925 和我们的测到的值50880有点差距,那这是为什么呢,所以我们在这里要明白两个的区别,65535代表的是16位的寄存器所能代表的最大数字,在这其中我们忽略了数字0,所以如果将一个寄存器用来数数,那么对应最大能够数的数是65536个数,是2的16次方。所以最终我们得到的数值应该是这样算出来的。
3_000_000 - 65536 × 45 = 50880
   下面举了个3位寄存器的实例,帮助大家理解。
   之后我们对应时钟修改官网的实例代码,可以得到我们想要的时钟设置,下面是我们最终得到的时钟频率,第三个是DCO的频率我们没有进行配置,所以还是原来的3MHz。其他的都相应修改为我们的设置时钟。
   最终代码如下:
   具体的话可以查看附件。
   这里我们看到ACLK和BCLK都是32000Hz,可能有会纳闷说我们接的晶振不是32.768KHz吗,其实是因为我们在初始化话外部时钟的时候写的是32K所以这里导致不同,大家可以改成32768,这样子就可以了。
   今天就说到这里了,上面还存在一个不足的地方,就是变量命名的问题,就是尽量要使用可辨识度比较高的名字作为变量名,如果使用的是temp这种的,还有什么,abc的,这种的不好,辨识度很低,可能今天写的代码,明天就看不懂了,变量的命名也很重要。

MSP432code1_1.rar (2.03 MB, 下载次数: 76)

MSP432学习心得之时钟配置
MSP432学习心得之系统滴答定时器

最新回复

您好,我试了试您的程序,最后MCLK的频率是32768,和默认的一样。为什么? MAP_CS_initClockSignal(CS_MCLK, CS_MODOSC_SELECT, CS_CLOCK_DIVIDER_4);  详情 回复 发表于 2017-2-18 14:25
 
点赞 关注(1)

回复
举报

6066

帖子

90

TA的资源

裸片初长成(初级)

沙发
 
谢谢分享,

点评

嘿嘿,多谢支持!  详情 回复 发表于 2016-2-1 11:39
 
 

回复

1158

帖子

2

TA的资源

版主

板凳
 

嘿嘿,多谢支持!
 
 
 

回复

330

帖子

907

TA的资源

一粒金砂(中级)

4
 
很详细,好好阅读一下

点评

恩恩,感谢支持咯,多多交流!  详情 回复 发表于 2016-2-2 11:52
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

5
 
最近正在学习msp432,但是光ccs6.0的使用就卡了我好几天,看楼主的这篇帖子非常好,顶一下,想问楼主有没有好的msp432学习教程分享一下?

点评

教程的话官方有出一个教学视频,你可以去看下。在我们的论坛公开课就有。其他的资料的话可以在论坛搜一搜了。其他的还有就是官网的那些手册了。  详情 回复 发表于 2016-2-2 11:51
 
 
 

回复

1158

帖子

2

TA的资源

版主

6
 
17862983805 发表于 2016-2-2 10:44
最近正在学习msp432,但是光ccs6.0的使用就卡了我好几天,看楼主的这篇帖子非常好,顶一下,想问楼主有没有 ...

教程的话官方有出一个教学视频,你可以去看下。在我们的论坛公开课就有。其他的资料的话可以在论坛搜一搜了。其他的还有就是官网的那些手册了。
 
 
 

回复

1158

帖子

2

TA的资源

版主

7
 
john_wang 发表于 2016-2-2 08:51
很详细,好好阅读一下

恩恩,感谢支持咯,多多交流!
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

8
 
michael_llh 发表于 2016-2-2 11:51
教程的话官方有出一个教学视频,你可以去看下。在我们的论坛公开课就有。其他的资料的话可以在论坛搜一搜 ...

论坛公开课?在哪能找到?

点评

在论坛的最上方,有一个EE大学堂,点进去,里面有个厂商专区选TI,就可以看到所有的TI公开课了  详情 回复 发表于 2016-2-5 13:35
 
 
 

回复

1158

帖子

2

TA的资源

版主

9
 
17862983805 发表于 2016-2-4 22:03
论坛公开课?在哪能找到?

在论坛的最上方,有一个EE大学堂,点进去,里面有个厂商专区选TI,就可以看到所有的TI公开课了
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

10
 
michael_llh 发表于 2016-2-5 13:35
在论坛的最上方,有一个EE大学堂,点进去,里面有个厂商专区选TI,就可以看到所有的TI公开课了

好的,谢谢啦
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

11
 
您好,我试了试您的程序,最后MCLK的频率是32768,和默认的一样。为什么?
MAP_CS_initClockSignal(CS_MCLK, CS_MODOSC_SELECT, CS_CLOCK_DIVIDER_4);

点评

你看下MCLK可以进行怎样的分频。在数据手册中那个时钟的图表  详情 回复 发表于 2017-2-18 18:29
 
 
 

回复

1158

帖子

2

TA的资源

版主

12
 
一步 发表于 2017-2-18 14:25
您好,我试了试您的程序,最后MCLK的频率是32768,和默认的一样。为什么?
MAP_CS_initClockSignal(CS_MC ...

你看下MCLK可以进行怎样的分频。在数据手册中那个时钟的图表
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表