
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
在串口调试助手手里,能完全显示出来,遇到$,则自动换行。 展开
在串口调试助手手里,能完全显示出来,遇到$,则自动换行。 展开
4个回答
展开全部
这个很简单啊,就是发送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位分辨率。可以用来接你的压力...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
仔细检查晶振频率,看见所用晶振与所设置的是否吻合
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用指针
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询