智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3287|回复: 3
打印 上一主题 下一主题

[软件类] XS128单片机SCI接口程序问题,很不解。求解答

[复制链接]

2

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
333
威望
266
贡献
57
兑换币
4
注册时间
2011-7-28
在线时间
5 小时
跳转到指定楼层
1#
发表于 2011-8-5 15:49:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
/////////////////////////////////////////////////////////////////////////////////////////
// 函数: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位清零,可是按照数据手册的说明是会清零的。不知道到底是什么原因。而且在使用这个函数发送数据的时候,上位机无法收到数据,或者收不到正确的数据。但是在自收发测试的时候,收发数据又是没问题的,被这个问题困扰好几天了。
现在实在找不出是什么原因,求解答。

相关帖子

2

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
333
威望
266
贡献
57
兑换币
4
注册时间
2011-7-28
在线时间
5 小时
2#
 楼主| 发表于 2011-8-11 23:10:34 | 只看该作者
Clear=SCI0SR1;
  SCI0DRL=data;  
功能赘述。第一句去掉。
回复

使用道具 举报

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
3#
发表于 2011-10-30 17:35:46 | 只看该作者
你好像是没有理解这个函数的意思?
回复

使用道具 举报

12

主题

119

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1295
威望
775
贡献
302
兑换币
35
注册时间
2012-2-22
在线时间
109 小时
4#
发表于 2012-3-11 17:26:32 | 只看该作者
貌似那一块的清零操作都是自动配置的吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-18 02:13 , Processed in 0.040317 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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