首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

串口调试出现乱码,请教!

串口调试出现乱码,请教!

大家好,我用的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++);//延时  
   }
 


 
}

学习MC9S12DP5256!
如果接收数据对不对?
看看信号线上有没有接什么阻容器件?
用示波器看一下传输的信号
if应该在for里面吧,不懂,请别介意!
for(i=0;i<=5;i++)
{SCI0DRL=a;} /* wait forever */

这样写缓存不会冲掉么?
Walk slowly,but never stop.
当然会不行,每一字字节发送前都要判断发送缓冲区已空才能把待发字节送进去啊。
              非学无以广才,非志无以成学;              
每发送一个字符,检查发送完标志位直到它置位,发送下一个字符
返回列表