智能车制作

标题: XS128单片机SCI接口程序问题,很不解。求解答 [打印本页]

作者: xlfd1    时间: 2011-8-5 15:49
标题: XS128单片机SCI接口程序问题,很不解。求解答
/////////////////////////////////////////////////////////////////////////////////////////
// 函数:Sci_Write
// 功能:通过XS128单片机串口发送一个字节字符型数据
/////////////////////////////////////////////////////////////////////////////////////////
void Sci_Write(unsigned char data)
{  
  while(!(SCI0SR1&0x80))  //数据寄存器未空,则等待中,直至空
    ;
  Clear=SCI0SR1;
  SCI0DRL=data;
  
  while(SCI0SR1_TC!=1);  //SCI未发送完则等待
  delay(TIME);           //延时一段时间

}
在用TBDML调试这个函数时候,发现 Clear=SCI0SR1;  SCI0DRL=data;  这两个语句并没有使标志寄存器的TDRE位和TC位清零,可是按照数据手册的说明是会清零的。不知道到底是什么原因。而且在使用这个函数发送数据的时候,上位机无法收到数据,或者收不到正确的数据。但是在自收发测试的时候,收发数据又是没问题的,被这个问题困扰好几天了。
现在实在找不出是什么原因,求解答。
作者: xlfd1    时间: 2011-8-11 23:10
Clear=SCI0SR1;
  SCI0DRL=data;  
功能赘述。第一句去掉。
作者: 飞思卡尔835    时间: 2011-10-30 17:35
你好像是没有理解这个函数的意思?
作者: 仰望星空1    时间: 2012-3-11 17:26
貌似那一块的清零操作都是自动配置的吧




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