Board logo

标题: 串口调试出现乱码,请教! [打印本页]

作者: gracebaihe    时间: 2006-8-31 08:55     标题: 串口调试出现乱码,请教!

大家好,我用的cpu是MC9S12DP512,现在在调试串口,以下是做简单的给超级终端发字符的小程序,可是超级终端接受到的总是乱码,感觉波特率设置没有错误,请教!


#include <hidef.h>      /* common defines and macros */
#include <mc9s12dp512.h>     /* derivative information */



#pragma LINK_INFO DERIVATIVE "mc9s12dp512"
#define uchar unsigned char
#define uint unsigned int


void main(void) {
  /* put your own code here */
   uchar i;
   uint j;
   uchar a[]={'H','E','L','L','O'};
   SCI0BDH=0x00;//波特率设置9600
   SCI0BDL=0x68;
   SCI0CR1_M=0;//设置停止位等
   while(1) {
       if (SCI0SR1_TDRE==0)  //检查状态寄存器的发射数据标志位是否为空
  
      SCI0CR2_TE=1;  //开启控制寄存器的发送使能位
      i=0;
      for(i=0;i<=5;i++)
       {SCI0DRL=a;} /* wait forever */
       for(j=0;j<12500;j++);//延时  
   }
 


 
}


作者: seuafu2005    时间: 2006-8-31 09:34

如果接收数据对不对?
看看信号线上有没有接什么阻容器件?
用示波器看一下传输的信号
作者: mizhuan    时间: 2006-8-31 15:13

if应该在for里面吧,不懂,请别介意!
作者: cunning    时间: 2006-8-31 17:25

for(i=0;i<=5;i++)
{SCI0DRL=a;} /* wait forever */

这样写缓存不会冲掉么?

作者: shpdlizj    时间: 2006-9-1 14:11

当然会不行,每一字字节发送前都要判断发送缓冲区已空才能把待发字节送进去啊。
作者: spideman    时间: 2006-9-4 11:18

每发送一个字符,检查发送完标志位直到它置位,发送下一个字符
作者: fjczd    时间: 2009-2-4 12:08

QUOTE:
以下是引用seuafu2005在2006-8-31 9:34:00的发言:
如果接收数据对不对?
看看信号线上有没有接什么阻容器件?
用示波器看一下传输

用示波器怎么看啊?能详细说说吗

谢谢






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0