专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 单片机

单片机串口只发送部分数据有关问题

发布时间: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码值为偶的都没显示。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: