智能车制作
标题:
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