智能车制作

标题: 128串口通讯问题 [打印本页]

作者: 风雨无阻1    时间: 2015-4-12 12:08
标题: 128串口通讯问题
发送一个常数到电脑的串口,串口收到的和发送的不一样,单片机重复上电,电脑串口软件能收到3-4个结果,怎么回事?下面是程序。请教。


#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
void UART0_Init(void);
void SetBus_64M(void) ;
void UART0_SendByte(byte ch);
unsigned char UART0_Read();                  
byte temp=66;
void main(void)
{   
DisableInterrupts;
SetBus_64M();
UART0_Init();
EnableInterrupts;

  for(;;)
  {   

       UART0_SendByte(77);
       _FEED_COP(); /* feeds the dog */        

  }
}

void SetBus_64M(void)
{
  CLKSEL_PLLSEL=0;  //禁止使能锁相环时钟
  PLLCTL_PLLON=1;   //锁相环电路允许
  SYNR=0xc0|0x07;   //VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
                    //VCOFRQ[1:0]=1:1,代表VCO_clock在80~120MHz
  REFDV=0x80|0x01;   //VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
                    //REF_clock=osc_clock/(REFDV+1)
                    //REFFEQ[1:0]=1:0,代表参考时钟在6~12MHz之间
  POSTDIV=0x00;      //PLL_clock=VCO_clock
  _asm(nop);
  _asm(nop);         //短暂延时,等待时钟频率稳定
  while(!(CRGFLG_LOCK==1))
  {
  ;
  }
  CLKSEL_PLLSEL=1;
}
void UART0_Init(void)
{
  SCI0CR1 = 0x00;
  SCI0CR2 = 0x2C;  //接收中断使能,发送接收使能
  SCI0BD  =35;     //波特率配置成115200

}
//---------------------------------------------------------------------
// 函数功能:SCI0发送一个字节数据
// 形式参数:  byte ch:发送的一个字节数据
// 函数返回值:无   
//---------------------------------------------------------------------
void UART0_SendByte(byte ch)
{
  while(!(SCI0SR1&0x80));
  SCI0DRL = ch;
}







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