单片机串口只发送部分数据有关问题
发布时间:2010-06-14 16:01:31 文章来源:www.iduyao.cn 采编人员:星星草
求助单片机串口只发送部分数据问题
小弟想实现单片机串口收发功能,程序如下。经keil,Proteus,虚拟串口,串口调试助手联合仿真,发现接收部分工作正常,发送部分程序运行后串口助手只接受到“pas npu sd 1 2 ”(本应为"please intput selected No. 01 02 or 03?")求高人指教,不胜感激~
#include"reg51.h"
#include"string.h"
sbit p=PSW^0;
char s[15];
char show[]="please intput selected No. 01 02 or 03?";
void main(void)
{
char t,i;
char a,b=0;
a=strlen(show);
SCON=0xD0; //串口工作方式3
TMOD=0x20; //波特率2400
TL1=0xF4;
TH1=0xF4;
PCON=0x80;
TR1=1;//开定时器
for(;b<a;b++)
{
ACC=show[b];
TB8=p;
SBUF=show[b];
while(!TI);
TI=0;
}
for(i=0;i<16;i++)
{
while(RI==0);
RI=0;
t=SBUF;
ACC=t;
if(p!=RB8)
break;
else
s[i]=ACC;
}
}
------解决方案--------------------
有可能串口助手来不及接收;
试下在每次发送前,延时一会儿,再发送。
------解决方案--------------------
试试串口中断里面接收吧,每接收完一个,会产生串口中断,判断中断标识,再接收下一个字节,直到接收完毕为止!这样看会不会有漏掉的数据!
------解决方案--------------------
你发送字符的同时,发送了奇偶校验位P,凡是ASCII码值为奇的都显示了,ASCII码值为偶的都没显示。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
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]
单片机最小系统单片机最小系统介...
-
单片机学习书籍大全推荐
在电子发烧友论坛里看到了单片机学习资料汇总,特地搜罗了过来,不知道大家看过几本,也希望让需要学习的人 都...