智能车制作

标题: 串口测试代码有错,求高人帮改错啊 提供全部工程 [打印本页]

作者: Envy    时间: 2009-12-5 21:44
标题: 串口测试代码有错,求高人帮改错啊 提供全部工程
如题!
流水灯正常
一旦开始内部操作就出错
具体我就提供工程了
我用的是串口大师
请高人帮我解答啊!
作者: 王怀玉    时间: 2009-12-13 01:11
我没有看你的程序 你看看窗口的波特率设的对吗?、
作者: 仁者    时间: 2010-2-5 12:36
这里有个别人写的串口的程序,你看下,仔细算下时钟波特率啥的
void SetBusCLK_80M(void)
{   
    CLKSEL=0X00;                                //disengage PLL to system
    PLLCTL_PLLON=1;                        //turn on PLL
    SYNR =0xc0 | 0x09;                        
    REFDV=0x80 | 0x01;
    POSTDIV=0x00;       //pllclock=2*osc*(1+SYNR)/(1+REFDV)=160MHz;
    _asm(nop);          //BUS CLOCK=80M
    _asm(nop);
    while(!(CRGFLG_LOCK==1));          //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;                        //engage PLL to system;
}
void uart_init (void)
{
        SCI0CR2=0x0c;
        SCI0BDH=0x02;
        SCI0BDL=0X09;
}

void uart_putchar (unsigned char ch)
{
        while (!(SCI0SR1&0x80))
        {
        }
        SCI0DRL=ch;
}

void SciSendStr(unsigned char *buf)
{
        unsigned char *p;
        p=buf;
        while(*p!='\0')
        {
                uart_putchar(*p++);
        }
}

void main(void) {
  /* put your own code here */
  SetBusCLK_80M();
  uart_init();
  SciSendStr("TianTian");
        EnableInterrupts;


  for(;;) {
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}
作者: 七彩    时间: 2010-2-16 18:35
能够倍频这么高吗
作者: changhao    时间: 2010-3-20 13:44
回复 2# 王怀玉


    这时的波特率是9600




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