不知道是不是串口的有关问题?希望大家支招帮忙解决
发布时间:2010-06-14 16:01:45 文章来源:www.iduyao.cn 采编人员:星星草
不知道是不是串口的问题?希望大家支招帮忙解决
近来,在做通过一个小东西。单片机用的是STC12C5A32S2,调用Znfat32文件系统把SD卡里的文件通过串口发送出来。
这里有一个简单的协议,上位机(一个设备)发送一个05过来,我调用文件的256字节发送出去,一直到文件的结束。
现在的问题是:上位机发出的第258个05我没有收到,所以到这里就停止了,文件没有发送结束。但是此时我自己通过串口发送一个05进去,数据可以发出来,而且数据是对的。
难道是波特率的问题吗 ?
不知道是哪里出现问题了呢?请求大家帮忙解决,不甚感激。。。
------解决方案--------------------
你确定你发送的数据顺序正确吗。
高位在前,还是低位在前,记住,是二进制。
------解决方案--------------------
前面257次都正确,说明不是波特率问题,很有可能是代码漏洞
------解决方案--------------------
1. 首先,是否是每次测试都只能收到第257个05呢,如果是,肯定是你的代码有问题,可能是你那个计数变量有问题,是否定义成unsigned char 类型了,它跟256很接近呢。
2. 不知你串口数据怎么收的,是否用的中断,是否是因为哪里关中断时间过长了呢。
3. 个人认为你的协议缺少检错和重传机制,这样程序的健壮性很差。
------解决方案--------------------
stc是1T的,是否发送的两个字节间隔时间短?
------解决方案--------------------
unsigned char buf[129]; //数据缓冲区,用于存储读取的文件数据
idata unsigned char buf1[129];
--------------------
增大缓冲区试试
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
c51串口求助!
串口接收程序如下
void rec_gps(void) interrupt 4 {
uchar str;
uint i,k;
k=0;
i=0;...
-
win7运行CodeWarrior IDE出错
我的本安装了CodeWarrior IDE,一运行就会出现提示:
IDE 4.1 Build 0622 已停止工作。
或者提示:
Unha...
-
关于AT指令控制GSM短信猫的问题
C/C++ code
打开串口
BOOL CComm::OpenComm(const char* pPort,
int nBaudRa...
-
关于51中断求教
各位大虾,我现在要做一个GPS授时的小程序,遇到如下困惑,求大虾们解答:
1 线路板上带有时钟芯片,平时显示时间是...
-
atd指令拨号,如何判断电话状态
在网上找了许久,终于找到一位仁心解决方案,这个指令是可以得到手机当时的状态,但是不管是空号、欠费、...
-
知道在哪跑飞,跑飞的详细原因有谁能解释一下。
今天出现这样的问题:
将这个中断函数注释掉:
#pragma vector=USCI_B2_VECTOR
__in...
-
51程序移植到2051
大牛们,我想吧一个51的程序移植到2051中,用NXP的89V51芯片时用到的I/O口只有P1.0 P1.1 P1.2 3三个,我现在移植到AT...
-
一道课程设计题:基于单片机的波形发生器的设计
设计要求:
1.能产生正弦波、方波、三角波、锯齿波等4种周期性波形,并且可通过调节变...
-
解析单片机最小系统及相关电路
原文出自:电子发烧友论坛——单片机论坛[color=#FF0000][/color]
单片机最小系统单片机最小系统介...
-
单片机学习书籍大全推荐
在电子发烧友论坛里看到了单片机学习资料汇总,特地搜罗了过来,不知道大家看过几本,也希望让需要学习的人 都...