找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 974|回复: 5
打印 上一主题 下一主题
收起左侧

at指令字符\0的问题

[复制链接]
跳转到指定楼层
楼主
ID:929517 发表于 2023-8-14 10:25 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
大佬们好,我是一名老菜鸟。有如下问题求解惑,跪谢。
如图,这是GPS语句,结束字符是<CR><LF>,我的问题是,如果是\0结束,可以用while (*str!="\0")退出循环,像这种的如何,如何处理?

1.jpg (124.46 KB, 下载次数: 24)

1.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-8-14 13:48 | 只看该作者
你这是把两个问题弄混淆了,NMEA协议是串口,以\r\n作为结束标志,里面并没有\0这个字符。

但是你要把NMEA一条指令放在c语言里面当成字符串存储,\r\n后面要跟一个\0作为字符串结束标志。

完全是两个风马牛不相及的东西。
回复

使用道具 举报

板凳
ID:1046139 发表于 2023-8-14 15:27 | 只看该作者
可以检测字符是否是 '\r' 和'\n'。

while( (buf[i]  != '\n') &&  (buf[i-1]   != '\r'))
回复

使用道具 举报

地板
ID:1091354 发表于 2023-8-15 11:24 | 只看该作者
<CR><LF>是回车换行符,字符值是0x0A,0x0D; \0是字符串结束符,值是0x00;想跳出循环,判断条件可以显而易见了
回复

使用道具 举报

5#
ID:883242 发表于 2023-8-15 13:55 | 只看该作者
可以用while (*str!='\n')退出循环
回复

使用道具 举报

6#
ID:195496 发表于 2023-8-15 17:07 | 只看该作者
字符串与16进制判断的问题,发送时,不发送\0,最后再发送0D0A
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表