在线时间0 小时
UID163383
注册时间2009-12-14
NXP金币0
该用户从未签到
新手上路

- 积分
- 43
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2010-4-6 14:38:45
|
显示全部楼层
回复:安兄弟,进来一下
我采用的是MC9S08DZ16芯片,为了阅读方便我 详细做了注释
时钟部分是这样配置的
void SetClock(void)
{
MCGC2 = 0x3f; //配置外部参考时钟,总线不分频,BDIV 00,RANGE为1(频率在4M),HGO 1,高增益,
//LP EREFS ERCLKEN EREFSTEN 均设置为1 其中EREFS为振荡器
while(MCGSC_OSCINIT==0)//循环检测,直到晶振完成初始化
{
__RESET_WATCHDOG();
}
MCGC1 = 0x80; //配置当前参考时钟为外部参考时钟
while(MCGSC_IREFST==1){;} //循环检测,直到当前参考时钟为外部参考时钟
//MCGC3 = 0x21;//4//MCUOUT=[(4M/1x16)/1],BUSCLOCK=32M
while(!(MCGSC_CLKST==0b10))//循环检测,表明已经选择外部参考时钟为当前时钟模式的MCGOUT 馈电
{
__RESET_WATCHDOG();
}
}
串口部分 要用到总线参考时钟,我用了4M,8M 2M 分别做了测试,而且串口调试助手也用遍了常用的波特率,结果依然通信不正常,
//设置UART1方式
//选择波特率为38400bps
void Uart1_Init(void)
{
SCI1BD =4000000/16/scibandrate; /* SCI1BD是串口波特率寄存器*/
SCI1C1 = 0x00; /* start + 8 data bits (LSB first) + stop ,No hardware parity*/
SCI1C2 = 0x2C; /* TCIE,RIE enable ,Receiver on,Transmitter on. no TIE*/
//PrintMsg("UART1 bps is 38400 ");
} |
|