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

比如这种格式字符串:$GPGSV,2,1,08,15,73,021,28,21,54,307,32,18,38,300,30,09,35,158,39*77在串口调试助手... 比如这种格式字符串:$GPGSV,2,1,08,15,73,021,28,21,54,307,32,18,38,300,30,09,35,158,39*77
在串口调试助手手里,能完全显示出来,遇到$,则自动换行。
展开
 我来答
zgr_我要下载
2011-12-01 · TA获得超过1401个赞
知道小有建树答主
回答量:454
采纳率:100%
帮助的人:524万
展开全部
这个很简单啊,就是发送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;

}

}
意法半导体(中国)投资有限公司
2021-01-14 广告
推荐STC的抗干扰很好。用9块钱的STC89C54RD+,16K的ROM,1K的RAM。我用过的,实现你的功能不成问题。如果环境恶劣,也可以选择工业级的STC89C54RD+,14块钱。而且这个单片机带AD,10位分辨率。可以用来接你的压力... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
xtsocc
2011-12-02
知道答主
回答量:2
采纳率:0%
帮助的人:3274
展开全部
仔细检查晶振频率,看见所用晶振与所设置的是否吻合
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
960310983
2011-11-30 · TA获得超过352个赞
知道小有建树答主
回答量:867
采纳率:0%
帮助的人:220万
展开全部
用指针
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tm31041990
2011-11-30
知道答主
回答量:9
采纳率:0%
帮助的人:1.5万
展开全部
不懂什么意思???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式