在线时间0 小时
UID279379
注册时间2011-4-15
NXP金币0
该用户从未签到
新手上路

- 积分
- 27
- 最后登录
- 1970-1-1
|
按datasheet上配置成总线16MHz,如下
void InitMCG(void)
{
/*step 1: FEI->FBE */
MCGC2 = 0x36; //a
while(MCGSC_OSCINIT != 1); //b
MCGC1 = 0xB8; //d
while(MCGSC_IREFST != 0); //e
while((MCGSC & 0x0C) != 0x08); //f
/*step 2: FBE->BLPE */
MCGC2 = 0x3E; //a B = 1
MCGC1 = 0x98; //c R = 8, 8MHz/8 = 1MHz
MCGC3 = 0x48; //d 32±¶Æµ, 1MHz*32 = 32MHz
while(!MCGSC_PLLST); //e
/*step 3: BLPE-> BE */
MCGC2 = 0x36; //a 设置LP为 0
while((MCGSC_LOCK) != 1); //b
/* step 4: PBE-> EE */
MCGC1 = 0x18; //a
while(MCGSC_CLKST != 3); //b
/*MCGOUT = [(f/R)*M]/B = [(8MHz/8)*32]/1 = 32MHz, BusFreq = MCGOUT/2 = 16MHz
*/
}
初始化SCI,如下:
void sciInit()
{
SCI1C1 = 0x00;
SCI1C2 = 0x2C;
}
SCI波特率为9600:
void SciBrInit(void)
{
SCI1BDH = 0x00;
SCI1BDL = 0x68;
//SCI1BD = 16000000/16/SCI_BAUD_RATE;
}
串口发送:
void SciSendByte(UINT8 *value)
{
while(!(SCI1S1&0x40)); // !(SCI0SR1&0x80)
SCI1D = *value;
}
void SciSendString(UINT8 *ptr)
{
p = ptr;
while(*p != '\0')
{
SciSendByte(p);
p++;
}
}
收不到任何数据,求解决
|
|