智能车制作

标题: SCI程序接收不到数据,求解答 [打印本页]

作者: 花小美    时间: 2012-12-7 20:06
标题: SCI程序接收不到数据,求解答
#include <hidef.h>
#include<mc9s12xs128.h>
void SET_PLL()
{
  CLKSEL=0x00;
  PLLCTL_PLLON=1;
  SYNR=0xc0|0x02;
REFDV=0x80|0x01;
  POSTDIV=0x00;
  _asm(nop);
  _asm(nop);
  while(!(CRGFLG_LOCK==1));
  CLKSEL_PLLSEL=1;
  while(1);
}
void uart_init (void)
{
  SCI0CR2=0x80;
  SCI0BDH=0x00;
  SCI0BDL=0x9c;
}
void uart_putchar(unsigned char ch)
{
  while(!(SCI0SR1&0x40))
  {}
  SCI0DRL=ch;
}
void main (void)
{
  uchar str []={'h','e','l','l','o'};
  uchar i=0;
  SET_PLL();
  EnableInterrupts;
  uart_init ();
  for (;i<5;i++)
    uart_putchar(str[i]);
   for(;;)
   {}
}
程序有问题吗?


作者: mxj1005071012    时间: 2012-12-8 16:35
没有发现错误
作者: 花小美    时间: 2012-12-11 19:39
好吧,谢了~
作者: houhongyi    时间: 2013-1-21 01:36
你看看是不是因为波特率不匹配造成误码率太高。我也是弄了一下午,现在数据流稳定了。。。你用PLL变频到26M再用9600的波特率,可实现0.76%的误码率。效果不错。只不过我现在发00,单片机返回80。。。不过误码率几乎可以忽视了。。。24M在9600下的误码率在6.9%左右,太高了,发00 回的数据都不一样,通讯就是不可靠的。。。。
都是新手,如有不妥之处还请包涵哦~~~

作者: 微电部队    时间: 2013-1-30 15:34
SCI0CR2=0x80;改成 SCI0CR2=0x08;
作者: 465153179    时间: 2013-2-3 10:28
有可能0通道不行,你它换成1通道看看,比如SCI1CR2=0x80
作者: 夏夜之星    时间: 2013-4-12 19:20
问一下你的问题解决吗?这位车友




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2