智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 802|回复: 0
打印 上一主题 下一主题

128串口通讯问题

[复制链接]

5

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
665
威望
332
贡献
179
兑换币
207
注册时间
2014-5-20
在线时间
77 小时
毕业学校
北京
跳转到指定楼层
1#
发表于 2015-4-12 12:08:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发送一个常数到电脑的串口,串口收到的和发送的不一样,单片机重复上电,电脑串口软件能收到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;
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-23 01:20 , Processed in 0.035914 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表