查看: 5665|回复: 7

[其他] 困扰了很久的串口问题!

[复制链接]

该用户从未签到

6

主题

15

帖子

0

新手上路

Rank: 1

积分
43
最后登录
1970-1-1
发表于 2010-3-30 22:29:47 | 显示全部楼层 |阅读模式
     之前,我就来论坛问过,但一直没有兄弟为我解惑,苦闷,原本打算不去搞他,但现在开发需要不得不再提出来
        我用的是mc9s08dz16芯片,用来写个串口,作为与mp5通信用~ 串口sci部分我已经写好,而且调试通过了。能发能收串口波特率为38400.
        第一个问题是  我想改用115200作为波特率,直接改了,但是不行,串口输出的是乱码,总线频率我是参照技术文档写的,用的是多功能时钟发生器,示例1.
        第二个问题是  当采用38400波特率进行串口接收发送测试时,usb bdm 调试器 连接目标板 进行调试时,能看到打印的信息,但是,当我断开目标板mcu与 usb bdm调试器的连接后,串口无法打印出信息,接收发送都不成功
       这两个问题一直困扰着我,希望飞思卡尔芯片组开发技术人员,能帮忙解决一下,最近就在线一直等帮忙了,开发需要没办法,当然我自己在努力查找下原因
我知道答案 目前已有7人回答
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-3-31 08:49:28 | 显示全部楼层

    RE:困扰了很久的串口问题!

    可能出现的问题:
    1、你的总线频率配置有错误,当连接BDM以后,他可以读取,但是断开以后,总线频率总是为0或者超出范围,而根本不能运行程序;
    2、波特率的选择,首先要确定你输出的波特率和你监听的波特率是一致的,再次确定你设置SCI的波特率是正确的。如果没有问题,是不会出错的。
    3、如果我说的不对,或者还没有实现,建议把SCI这部分配置发出来,我看看。
    该会员没有填写今日想说内容.

    该用户从未签到

    6

    主题

    15

    帖子

    0

    新手上路

    Rank: 1

    积分
    43
    最后登录
    1970-1-1
     楼主| 发表于 2010-3-31 11:33:15 | 显示全部楼层

    回复:困扰了很久的串口问题!

    谢谢安,问题依然没有解决!  我把我的时钟设置部分 和串口初始化部分程序发上来,大家帮忙研究下
    void SetClock(void)/*目的是设置总线时钟=8M,外部晶振是4M*/
    {
     // 从FEI转换到FBE
      MCGC2=0x36; //MCGSC_OSCINIT=1;
      while(MCGSC_OSCINIT==0){__RESET_WATCHDOG();}
      // 禁止中断(如果适用,在CCR 中设置中断位)。
      MCGC1=0xb8;
      while(MCGSC_IREFST==1){;}
      while(!(MCGSC_CLKST==0b10)) {;}  //0x02
    // 从FBE转换到BLPE
      MCGC2_LP=1;
    //使能中断(如果适用,清除CCR 中的中断位)
      MCGC1=0x90;
      MCGC3=0x44;
      while(MCGSC_PLLST != 1);
    // 从BLPE 模式转换到PBE 模式
      if(MCGC2_LP==1)
      MCGC2=0x36;
     // while(MCGSC_PLLST==0){;}
      while(MCGSC_LOCK==0){;}
    // 从PBE 模式转换到 PEE 模式
      MCGC1=0x10;
      while(!(MCGSC_CLKST==0b11)) {;}  
    }
    //设置UART1方式
    //选择波特率为38400bps
    void Uart1_Init(void)
    {
        SCI1BD =8000000/16/scibandrate; /*scibandrate =38400在头文件申明了*/
        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 ");
    }
           以上就是采用内部时钟,调制总线频率是8M,其实我看了debugger的command输出窗口,它显示的CPU clock SPEED是7642000 ,我也尝试用MCGTRM来调整,但一直达不到或者接近8000000,(从小到大输了几十个值来调,但时钟频率不是7600000左右就是8600000左右), 我也查过资料,采用内部时钟,肯定会不准确,但现在要使用串口通信,这样肯定是实现不了。
      希望技术开发人员能帮忙研究下,以帮助我解决这2问题!  
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-4-1 09:59:15 | 显示全部楼层

    RE:困扰了很久的串口问题!

    问题就是出在你的时钟源的选择上面,你既然有外部时钟,建议你选择外部时钟源。我使用的时候,也是因为选择内部时钟源而导致串口的问题,换成外部就没事了。不过我设置的没有你这么复杂,只需要设置时钟源寄存器就行了。
    该会员没有填写今日想说内容.

    该用户从未签到

    6

    主题

    15

    帖子

    0

    新手上路

    Rank: 1

    积分
    43
    最后登录
    1970-1-1
     楼主| 发表于 2010-4-1 17:32:59 | 显示全部楼层

    回复:困扰了很久的串口问题!

    安,能不能把你的那部分时钟设置程序发给我参考下,我使用外部晶振做参考时钟,现在还没弄成功!

    该用户从未签到

    6

    主题

    15

    帖子

    0

    新手上路

    Rank: 1

    积分
    43
    最后登录
    1970-1-1
     楼主| 发表于 2010-4-2 10:32:38 | 显示全部楼层

    回复:困扰了很久的串口问题!


           谢谢安,通了,终于整好了,现在拔除bdm后,目标板能正常进行串口通信了,多亏了的安的关注啊,其实昨天我已经很接近调通了,只是有个控制寄存器没设置好,现在我把使用外部晶振来做时钟参考的程序发出来,以帮助将来碰到类似的问题的朋友~
    该时钟初始化只适合对于通信要求非常严格的开发需要,包括串口通信
    void SetClock(void)
    {
        MCGC1 = 0x80;     //选择外部时钟作为参考,其他与外部时钟无关的全置0
        MCGC2 = 0x36;     // 设置当前外部时钟的频率范围,我用的是4M的晶振,配置高增益,选择振荡器,外部参考使能。
        while(!(MCGSC_CLKST==0b10)){;}//等待MCU进行时钟配置,直到当前的参考时钟为外部晶振作为参考时钟
    }
    另外在串口初始化部分也要注意,此时的总线频率就是系统频率,也就是实际的外部晶振4M
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-4-2 14:16:39 | 显示全部楼层

    RE:困扰了很久的串口问题!

    呵呵。解决了就好。如需帮助,请在论坛发帖。
    该会员没有填写今日想说内容.
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 00:22 , Processed in 0.095019 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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