CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  硬件/嵌入开发 >  单片机/工控

用串口发送数据怎么会丢失第二位?

楼主Suren2003(苏恩)2004-04-03 22:43:38 在 硬件/嵌入开发 / 单片机/工控 提问

我用查表发送数据,大致的程序如下:  
  MOV   DPTR,#TAB ;定义指针指向TAB  
  SE_TAB: MOV   A,#00H ;将A清空  
  MOVC   A,@A+DPTR ;将表中第一个字符调用到A中  
  MOV   SBUF,A ;将累加器A中字符调到SBUF  
  SECK1: JBC   TI,CK_AT ;等数据发出后跳到CK_AT  
  SJMP   SECK1  
  CK_TAB: INC   DPTR ;修改指针,使之指向下一个字符  
  CJNE   A,#0AH,SE_AT  
   
  TAB: DB   41H,00H,54H,0DH,0AH  
  但是运行时将41H发送后TI一直为1,因此跳过了第二位数据,无奈只有在第二位设置一个无用数据以供延时。不知问题出在哪里,特此求教?先在这谢谢啦! 问题点数:40、回复次数:6Top

1 楼lhywing168(林)回复于 2004-04-04 19:06:22 得分 10

SE_AT,,CK_AT这跳转没有问题吧,再查一下吧Top

2 楼sundaykid(Sunday)回复于 2004-04-05 09:17:16 得分 0

 
   
   
  注意:TI是要由軟件清零的.  
   
  Top

3 楼eric9811(MCU我选择我喜欢)回复于 2004-04-05 09:31:55 得分 10

JBC   TI,CK_AT,CK_AT这个function是将数据取出的吗?  
  从这几句看来程序好像没问题!  
  另外按楼上兄弟说的检查检查!Top

4 楼Suren2003(苏恩)回复于 2004-04-05 09:56:07 得分 0

to   sundaykid(sundaykid):  
  TI是不是需要在最初的时候就用软件清零?Top

5 楼daozi1980()回复于 2004-04-05 11:22:44 得分 10

你的问题是应该在中断程序里将TI清0,这样就OK了Top

6 楼sundaykid(Sunday)回复于 2004-04-05 19:50:03 得分 10

TI不但要初始化時清由軟件清零,  
  且每次發送完後都需要由軟件清零.Top

相关问题

  • 串口数据丢失问题?
  • 串口按二进制数据发送
  • 串口发送数据问题:
  • 从串口发送数据包问题
  • 串口发送数据问题
  • 串口发送非字符数据
  • 串口数据
  • 急急急!!!在串口通信中接收时数据总有丢失出现.
  • 急急急!!!在串口通信中接收时数据总有丢失出现.
  • 如何用VC编写向串口发送数据的程序?

关键词

  • 数据
  • ti
  • 字符
  • ck
  • dptr
  • 发送
  • 軟件清零
  • 程序
  • tab
  • 问题

得分解答快速导航

  • 帖主:Suren2003
  • lhywing168
  • eric9811
  • daozi1980
  • sundaykid

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo