历史上的今天
今天是:2025年04月06日(星期日)
2020年04月06日 | MSP430Ware使用笔记 初始化XT1
2020-04-06 来源:eefocus
1.平台说明 MSP430F5438
2.为什么使用MSPWare。
由于工作原因,学校中多使用STM32,STM32的DriverLib比较方便使用。初学MSP430重新回到了操作寄存器的时代,稍稍有点不适应。后来发现MSP也有DriverLib只是使用的人不多,就这范例文档一点一点摸索,并和寄存器操作相比较。经过了一段时间的努力也就熟悉了。
3.嵌入式系统编程趋势
个人认为,DriverLib会成为主流,这样可以缩短MCU使用的难度,在Flash和RAM容量不断提高的今天,不必去死抠每一个函数,如何更快上手MCU解决实际问题才是王道。刚刚推出市场的新MCU也具备DriverLib,缩短上手时间,更快占领市场。
4.示例代码,启动XT1。TI的示例代码中缺少初始化P7.0和P7.1外设功能的代码,所以无法运行。此处做了少许修改。
#include "inc/hw_memmap.h"
#include "ucs.h"
#include "wdt_a.h"
#include "gpio.h"
#include "sfr.h"
uint16_t status;
void main (void)
{
// 停止看门狗
WDT_A_hold(WDT_A_BASE);
// P4.0保持输出状态
GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN0);
// 初始化P7.0和P7.1为复用功能
GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P7 , GPIO_PIN0 | GPIO_PIN1 );
// 启动XT1 并等待晶振所有错误标志位清楚
UCS_LFXT1Start( UCS_BASE , UCS_XT1_DRIVE0 , UCS_XCAP_3 );
// 使能全局中断
__bis_SR_register(GIE);
while(1)
{
// 翻转P4.0
GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN0);
// 软件延时
__delay_cycles(1000000);
}
}
如果使用了XT1或者XT2,那么调用UCS_getSMCLK、UCS_getMCLK、UCS_getACLK之前需要调用UCS_setExternalClockSource(UCS_BASE,XT1_CLK,XT2_CLK);
虽然对于这段代码而言UCS_getSMCLK等函数没有实际的作用,但这些函数对于设定UART或SPIder波特率还是很有帮助的。
修改后的代码如下:
#include "inc/hw_memmap.h"
#include "ucs.h"
#include "wdt_a.h"
#include "gpio.h"
#include "sfr.h"
uint32_t clockValue_ACLK = 0;
uint32_t clockValue_MCLK = 0;
uint32_t clockValue_SMCLK = 0;
void main (void)
{
// 停止看门狗
WDT_A_hold(WDT_A_BASE);
// P4.0保持输出状态
GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN0);
// 初始化P7.0和P7.1为复用功能
GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P7 , GPIO_PIN0 | GPIO_PIN1 );
// 启动XT1,并等待晶振所有错误标志位清楚
UCS_LFXT1Start( UCS_BASE , UCS_XT1_DRIVE0 , UCS_XCAP_3 );
// 如果使用XT1或者XT2,需要调用该函数
UCS_setExternalClockSource(UCS_BASE,32768,8000000);
// 获得系统时钟,系统时钟,辅助时钟
clockValue_SMCLK = UCS_getSMCLK( UCS_BASE );
clockValue_MCLK = UCS_getMCLK( UCS_BASE );
clockValue_ACLK = UCS_getACLK( UCS_BASE );
// 使能全局中断
__bis_SR_register(GIE);
while(1)
{
// 翻转P4.0
GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN0);
// 软件延时
__delay_cycles(1000000);
}
}
默认情况,ACLK选择XT1时钟,此时XT1时钟为32768HZ,FLL参考时钟为XT1,倍频之后DCODIV为1048576Hz。SMCLK和MCLK的参考时钟均为DCODIV。
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 MPEG4有明天吗? 当我看到在诺基亚N-GAGE-QD上通过realone播放器播放电影的时候,感觉MPEG4的末日即将到来。 在手机整合MP3功能的时候,MP3还能靠着小巧的体积和时尚的挂件装饰作用勉强不被手 ...… 查看全部问答> |
|
周末我们EEWORLD同事们在一起吃年饭,一位最年轻的同事席间感慨发言,她在EEWORLD一年半的职业生涯算是走的很踏实,一直在进步。而反观自己的同学,很多已经换了若干个工作,还不知道自己要干什么。 单位不愿意招应届生的原因之一,就是因为他们太 ...… 查看全部问答> |
|
中心议题: 城市轨道交通控制系统和电源系统需要加装滤波器介绍电源滤波器的基本概念、参数选取以及安装原则等几 个方面分析电源滤波器得出相关结论 解决方案: 安装无源EMI滤波器,减少干扰和衰减采用横截面积较大的磁芯绕制成多匝线圈,得到 ...… 查看全部问答> |
|
为了调试3G设备,买了华为的E1750和EC189,还有另外厂家的设备; 现在EC189和另外一个厂家的EVDO网卡在arm linux下都无法识别,wcdma的网卡都可以识别。 无法识别是指网卡插入后内核没有任何打印信息,而一般的usb设备,包括u盘或wifi网卡插入后 ...… 查看全部问答> |
|
接触过RT-Thread的都知道RT-Thread的许可证是很宽松的: RT-Thread 0.3.0遵循GPLv2许可证,后期会更改更为宽松的许可证:可能是BSD,也可能是Apache v2。不管是哪个,这两个都是商业化友好的许可证,即在使用的时候的声明有使用相关代码 ...… 查看全部问答> |
|
小编整理出关于家居防盗、家居安全的几个小知识,为您的家居防盗贡献几点意见。 ◆防盗门锁、防盗报警产品缺陷:只防不报、只报不防 http://www.srvee.com/html/58/n-50358.html 防盗措施后来有了加强,出现了防盗门锁,就是第二阶段。 ...… 查看全部问答> |
|
我今天用pl2303hx和avr-m88串口通讯时,pl2303hx先通电了,在连线的时候发现连了地和RXD的时候,m88板上面的电源灯亮了,板上面RXD脚没有其他任何连接,RXD脚5v,电源脚居然有3.3v,试了几次都是这样,单片机连接好了通讯也是正常的,难道avr串口漏 ...… 查看全部问答> |




