查看: 4118|回复: 4

[其他] DZ60 8MHz晶振 串口通信收不到数据

[复制链接]

该用户从未签到

2

主题

20

帖子

0

新手上路

Rank: 1

积分
27
最后登录
1970-1-1
发表于 2011-8-27 14:40:35 | 显示全部楼层 |阅读模式
按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-&gtBE */
    MCGC2 = 0x36;                //a   设置LP为 0
    while((MCGSC_LOCK) != 1);    //b
   
    /* step 4: PBE-&gtEE */
    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++;
    }
   
}
收不到任何数据,求解决
我知道答案 目前已有3人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-8-27 15:34:22 | 显示全部楼层

    RE:DZ60 8MHz晶振 串口通信收不到数据

    你在初始化SCI了吗?还不到你如何在使用。配置没有问题。
    该会员没有填写今日想说内容.

    该用户从未签到

    2

    主题

    20

    帖子

    0

    新手上路

    Rank: 1

    积分
    27
    最后登录
    1970-1-1
     楼主| 发表于 2011-8-27 18:34:28 | 显示全部楼层

    回复:DZ60 8MHz晶振 串口通信收不到数据

    回复第 2 楼 于2011-08-27 07:34:22发表:
    你在初始化SCI了吗?还不到你如何在使用。配置没有问题。 

     初始化SCI,如下:
    void sciInit()
    {
        SCI1C1 = 0x00;
        SCI1C2 = 0x2C;
    }
    SCI波特率为9600:
    void SciBrInit(void)
    {
        SCI1BDH = 0x00;
        SCI1BDL = 0x68;
       
        //SCI1BD = 16000000/16/SCI_BAUD_RATE;  
    }

    该用户从未签到

    2

    主题

    20

    帖子

    0

    新手上路

    Rank: 1

    积分
    27
    最后登录
    1970-1-1
     楼主| 发表于 2011-8-27 18:54:18 | 显示全部楼层

    回复:DZ60 8MHz晶振 串口通信收不到数据

    回复第 3 楼 于2011-08-27 10:34:28发表:
    回复第 2 楼 于2011-08-27 07:34:22发表:
    你在初始化SCI了吗?还不到你如何在使用。配置没有问题。 

     初始化SCI,如下:
    void sciInit()
    {
        SCI1C1 = 0x00;
        SCI1C2 = 0x2C;
    }
    SCI波特率为9600:
    void SciBrInit(void)
    {
        SCI1BDH = 0x00;
        SCI1BDL = 0x68;
       
        //SCI1BD = 16000000/16/SCI_BAUD_RATE;  
    }
     

    本来是想测试MCG的配置正不正确,因为DZ60上没引出总线频率的PIN脚,所以才利用串口通信来测试是否配置正确。

    该用户从未签到

    2

    主题

    20

    帖子

    0

    新手上路

    Rank: 1

    积分
    27
    最后登录
    1970-1-1
     楼主| 发表于 2011-8-29 15:17:51 | 显示全部楼层

    RE:DZ60 8MHz晶振 串口通信收不到数据

    今天调试了一下,能收到一些数据,一部分是正确的,一部分是乱码。如下:
    (JHI[6I$ellohe$HRcc{C+cc{C)B[6[6I%ellohellohe$H€ARcc{C+cc{C+cc{CRC+cc{C+cc{C+c#2C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{lohellohelloheellohellohell?[6[6{ÿÿellohellohelÿohellohelloÿlohelloheohellohellÿlohellohÿÿellohell?[6ÿellohellohelllloheÿÿohellÿÿÿloheohell6[ÿÿÿell6{ÿel?ÿÿÿÿÿÿoe?ÿÿ        [6        $elloheH+cc{C+cc{CR@Ilohellohel,BHyC+cc{C+cc{C+!B)cc{C+cc{C+cc{CRa{C+cc{C+cc{C+ccC+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{C+cc{ellohellohelloheohellohellohellÿ?[6[6ÿÿÿellohellohelohellohellÿlohelloheohellohell?[6{ÿÿellohel?[6?elloheÿohellÿÿloheohelllohÿohel6ÿÿel?ÿÿ
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-27 03:24 , Processed in 0.092874 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表