请教MSP430F5438A的晶振选择,最好带程序
答案:1 悬赏:70
解决时间 2021-01-05 01:59
- 提问者网友:末路
- 2021-01-04 18:09
请教MSP430F5438A的晶振选择,最好带程序
最佳答案
- 二级知识专家网友:等灯
- 2021-01-04 19:08
#include
#include"XT2.h"
#define uint unsigned int
#define uchar unsigned char
void initsys()//XT2时钟初始化
{
uchar k;
P5SEL |= BIT2+BIT3; // P5.2和P5.3是 XT2 脚,24MHz晶振
UCSCTL6 &= ~(XT2OFF);//开启XT2晶振
UCSCTL3 |= SELREF_2; // FLLref = REFO
UCSCTL4 |= SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);//清除TX1,XT2和DCO振荡标志
SFRIFG1&=~OFIFG;//清除振荡器失效标志,清除中断标志
for(k=0xff;k>0;k--)//延时
{;}
}
while((SFRIFG1&OFIFG)!=0);//判断XT2是否起振,等待时钟系统正常工作
UCSCTL6 = XT2DRIVE1 + XT2DRIVE0; //驱动晶振的能力是24M到32M
UCSCTL4 |= SELS_5 + SELM_5+SELA_0; //SELA=XT1(32768Hz), SMCLK=MCLK=XT2(24MHz),CPU时钟(MCLK)为24MHz
UCSCTL5 |= DIVS__4+DIVM__8+DIVA__1; //f(SMCLK)/4,24MHz 4分频为6MHz==高速外围时钟(SMCLK)
}//初始化 //f(MCLK)/8,24MHz 8分频为3MHz==CPU时钟(MCLK)
//f(ACLK)/1,32768Hz 1分频为32768Hz==低速外设(ACLK)
#include"XT2.h"
#define uint unsigned int
#define uchar unsigned char
void initsys()//XT2时钟初始化
{
uchar k;
P5SEL |= BIT2+BIT3; // P5.2和P5.3是 XT2 脚,24MHz晶振
UCSCTL6 &= ~(XT2OFF);//开启XT2晶振
UCSCTL3 |= SELREF_2; // FLLref = REFO
UCSCTL4 |= SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);//清除TX1,XT2和DCO振荡标志
SFRIFG1&=~OFIFG;//清除振荡器失效标志,清除中断标志
for(k=0xff;k>0;k--)//延时
{;}
}
while((SFRIFG1&OFIFG)!=0);//判断XT2是否起振,等待时钟系统正常工作
UCSCTL6 = XT2DRIVE1 + XT2DRIVE0; //驱动晶振的能力是24M到32M
UCSCTL4 |= SELS_5 + SELM_5+SELA_0; //SELA=XT1(32768Hz), SMCLK=MCLK=XT2(24MHz),CPU时钟(MCLK)为24MHz
UCSCTL5 |= DIVS__4+DIVM__8+DIVA__1; //f(SMCLK)/4,24MHz 4分频为6MHz==高速外围时钟(SMCLK)
}//初始化 //f(MCLK)/8,24MHz 8分频为3MHz==CPU时钟(MCLK)
//f(ACLK)/1,32768Hz 1分频为32768Hz==低速外设(ACLK)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯