STC89C52与PC串口通讯怎么发字符串?求程序!我单字符发成功了,就是字符串不知道怎么弄?

就是我在调试助手随便键盘输入什么,上面就显示什么?谢谢!这是我的程序,应该怎么改?谢谢#include<reg52.h>unsignedcharflag,a;voidin... 就是我在调试助手随便键盘输入什么,上面就显示什么?谢谢!
这是我的程序,应该怎么改?谢谢
#include <reg52.h>
unsigned char flag,a;
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
main()
{
init();
while(1)
{
if(flag==1)
{
ES=0;
SBUF=a;
while(!TI);
TI=0;
ES=1;
flag=0;
}
}
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
展开
 我来答
GrandyLiao
2012-10-15 · TA获得超过898个赞
知道小有建树答主
回答量:199
采纳率:100%
帮助的人:222万
展开全部
呵呵,这个问题很简单。比如你需要发送字符串"i can help you!"共计15个字符,那么你可以用一个数组比如sendBuf[15]="i can help you!";然后,你在发送的时候写一个for循环就行咯:
for(i=0;i<15;i++)
{
SBUF=sendBuf[i];
while(!TI); //等待发送完毕
}
在接收的时候也是一样的:定义接收缓冲区receiveBuf[15];
然后中断里面的接收语句体为:
void ser() interrupt 4
{
RI=0;
receiveBuf[m++]=SBUF;//注意m为全局变量
if(m==15)//接收完毕
{
flag=1;
m=0;
}
}
这样接收完毕之后,接收缓冲区的内容就是你需要的字符串了。
OVER。
更多追问追答
追问
receiveBuf[15]与sendBuf[15]都要定义为无符号字符数组吗?
追答
是啊 uchar 也就是0-255.
做而论道
高能答主

2012-10-11 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
把你的程序显示出来,简单改改即可。
更多追问追答
追问
我已经把程序贴出来了,怎么该呢?
追答
这个程序,难道不能实现《在调试助手随便输入什么,上面就显示什么》吗?

当你在调试助手随便输入,上面显示些什么呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式