野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9698|回复: 2

【蓝牙通信】发送AT+LED1=ON点亮LED并不总是成功

[复制链接]
发表于 2016-5-4 10:42:10 | 显示全部楼层 |阅读模式
     基于野火STM32F103开发板,用的是论坛提供的野火蓝牙通信的例程,从蓝牙到蓝牙,发现一个很奇怪的现象,不知道有木有人能解答下。
     建立起蓝牙通信后,从机向主机,主机向从机都能通信,但是在发送AT+LED1=ON 的指令的时候,接收指令的蓝牙只是将其当做普通的字符,执行了下图①的代码,然后在两者通信了一段时间之后,时间间隔不确定,有时候2,3分钟,有时候4,5分钟(没有具体计算过),然后发送同一条指令,这个时候程序执行了下图②的代码。
    另外第二幅图是串口调试助手的截图,发送的指令都是同一行,开始发送的时候每条显示之间会有很多的空行(此时执行的是①),过了一段时间再发送时,只有一行空行,当没有空行时,指令就会发送成功,LED灯就会被点亮……这也很奇怪呀……我找了下打印指令( 22.png ),并没有空行的指令呀。。。。。。
    不知道有木有人能解答下这些‘奇怪’的现象~~
搜狗截图20160504102935.png 11.png
回复

使用道具 举报

发表于 2016-5-4 11:30:41 | 显示全部楼层
可以把命令判断改成使用strstr函数来查找,只要出现了就表示指令,而不需要完全相等
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-4 14:04:32 | 显示全部楼层
flyleaf 发表于 2016-5-4 11:30
可以把命令判断改成使用strstr函数来查找,只要出现了就表示指令,而不需要完全相等

   恩恩,回头试试这种方式,但是为什么会出现前面提到的奇怪现象呢?是strcmp函数的原因吗?但是也不至于出现奇怪的空行?
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-24 22:13 , Processed in 0.036729 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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