在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2923|回复: 4

[求助]关于用单片机进行R232通讯时误码率高的问题!

[复制链接]
发表于 2005-10-27 10:01:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
程序如下:
//本段程序可以测试R232通讯是否正常,
//上位机发送'#'or'@',单片机发送'u'and 'e'.
#include <ADuC812.h>//ADuC812的P1口不能作为输出口。
#include <stdio.h>
#include <math.h>
void delay10ms(void);
sbit P2_0= P2^0;sbit P2_1= P2^1;sbit P2_2= P2^2;sbit P2_3= P2^3;
unsigned char command=0;
main()
{
   unsigned int i;
   //初始化很重要,波特率要对应
   SCON  = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr      */
   TMOD  = 0x20;        /* TMOD: timer 1, mode 2, 8-bit reload        */
   TH1   = 0xfd;        /* TH1:  reload value for 9600 baud @ 11.0592MHz   */
   TL1   = 0xfd;
   TR1   = 1;           /* TR1:  timer 1 run                          */
//  TI    = 1;
//  RCLK = 1;
//  TCLK = 1;
//  TH2 = 0xff;
// TL2 = 0xdc;
//  RCAP2H = 0xff;
// RCAP2L = 0xdc;
//  TR2 = 1;
   ES =1;
   EA = 1;
   
while(1)
{
  while(i--){}
  //send
  if (command ==1)//串口发送
  {
  
  SBUF = 'u';
  while(!TI) ;
  TI = 0;
delay10ms();
  SBUF = 'e';
  while(!TI) ;
  TI = 0;
  command = 0;
  }
  
}
}
void delay10ms(void)
{
  unsigned char i,j,k;
  for(i=12;i>0;i--)
     //_nop_();
  for(j=45;j>0;j--)
   
    for(k=7;k>0;k--)//延时时间为t=[i*(j*(k*2+3)+3)+5]*T,这样延时时间是
                      //10.001ms
  {}
}

void serial (void) interrupt 4 //中断接收
{
   unsigned char r_byte;
   ES = 0;
   RI = 0;
   r_byte = SBUF;
   if (r_byte == '#') command = 1;
   ES = 1;
   if (r_byte == '@') command = 1;
   ES = 1;
}
发送一个‘#’或‘@’,收到‘ue’,但是误码率太高了!请各位指点一下!谢谢!
 楼主| 发表于 2005-10-27 10:02:36 | 显示全部楼层

[求助]关于用单片机进行R232通讯时误码率高的问题!

大家帮一下!
发表于 2005-10-27 12:05:55 | 显示全部楼层

[求助]关于用单片机进行R232通讯时误码率高的问题!

void serial (void) interrupt 4 //中断接收
{
  unsigned char r_byte;
  if( RI )
  {      
      r_byte = SBUF;
      if (r_byte == '#') command = 1;
      if (r_byte == '@') command = 1;
      RI = 0;
   }
}
 楼主| 发表于 2005-10-27 13:45:24 | 显示全部楼层

[求助]关于用单片机进行R232通讯时误码率高的问题!

谢谢先!
发表于 2005-11-15 10:44:00 | 显示全部楼层

[求助]关于用单片机进行R232通讯时误码率高的问题!

我在串口实验中遇到过数据不对应的问题,就是单片机只认2进制,而PC是ASCII码,数据不对应啊!所以2个之间要统一一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-28 11:19 , Processed in 0.019462 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表