51单片机如何将一个字符串(包含字母数字和标点)发给电脑,在电脑上的串口调试助手上能显示出来?

比如这种格式字符串:$GPGSV,2,1,08,15,73,021,28,21,54,307,32,18,38,300,30,09,35,158,39*77
在串口调试助手手里,能完全显示出来,遇到$,则自动换行。

这个很简单啊,就是发送ascll码啊,用一个for循环加一个if判断就可以了,像你这个先建个数组存放这些字符,然后需要循环68次,当if((数组中字符)==$) SBUF=0X0A,0A是换行的ascll码,其它的直接将数组中的字符发出去就行了,不过要在串口调试助手上设置ascll码显示追问

我给就是这样写的,但是串口接到的全是乱码 不知道是那里出的问题?
数组定义是这样:char str[]={"$GPS……"};可以不?

追答

应该定义无符号的unsigned char str[]={"$GPS……"};在发送的时候程序应该是这样的
void fasong(void)
{
uchar i;
for(i=0;i<68;i++)
{ if(str[i]!="$")
SBUF=str[i];
else
{SBUF=0x0a;}
while(!TI);
TI=0;

}

}

追问

你给的代码不对, if(str[i]!=‘$’)
而且 $在川口里不会显示

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-02
仔细检查晶振频率,看见所用晶振与所设置的是否吻合
第2个回答  2011-11-30
用指针本回答被提问者采纳
第3个回答  2011-11-30
不懂什么意思???
相似回答