记录arduino+ble调试成功(没有完整资料的日子真痛苦)
很早之前,大概是7月份买了ble的arduino模块,花了2天时间竟然没有调通。 然后扔在角落里落滿了灰尘。 昨日又拿起来,难道真的是因为买了一个坏的硬件?
今日又从把昨天看完的教程又看一遍,无意中终于找到了原因。 网上资料太少, keyes的基于Bolutek (蓝牙串口板子) ti cc2541(ti 蓝牙soc芯片) 的arduino 扩展板子 也没有完整的资料和教程。 真是愁人, 搜索完 cc2541 和 hm(x) 还不知到hm的版本号。
从网上搜到了 hm10 的文档,尝试了下 AT 命令,却一直无法成功访问到蓝牙模块。
1. 蓝牙模块的串行接口 发送命令时,是需要println() 的方法去发送,否则无效。 println顾名思义是带有一个newline的符号。 所以无newline的就无法发送成功。
if (Serial.available()) { /* char a = Serial.read(); Serial.println(a); mySerial.write(Serial.read());*/ String a = Serial.readString(); Serial.println(a.c_str()); //mySerial.write(a.c_str()); BTserial.println(a.c_str()); }
使用write(char)的方法不通, 而使用 println(const string*)的方式是可以的。
2. 不同的固件版本AT命令不完全相同,而且千差万别。
所以一定要先确定AT命令,返回OK后,就大功一半了。 剩下可以尝试 AT+HELP 或者 AT+HELP? ,来进行测试找到帮助文档。
Goodnight moon! OK AT+HELP ******************************************************************** * Command master mode Description * * ---------------------------------------------------------------- * * AT+INQ Search slave model. * * AT+CONN Connect the index slave model. * * AT+SHOW Show the searched slave model. * * AT Check if the command terminal work normally * * AT+ROLE Get/Set current role. * * AT+STATE Get model current state. * * AT+BAUD Get/Set baud rate * * AT+DEFAULT Restore factory default * * AT+PWRM Get/Set power on mode(low power) * * AT+SLEEP Sleep mode * * AT+IMME Work mode when power on. * * AT+START Begin to work. * * AT+CMODE Get/Set model bound mode. * * AT+STOP Get/Set UART stop bit. * * AT+PARI Get/Set UART parity bit. * * AT+LADDR Get local bluetooth address * * AT+NAME Get/Set local device name * * AT+RESET Software reboot * * AT+VERSION Get version firmware, * * AT+HELP List all the commands * * -----------------------------------------------------------------* * Note: (M) = The command support slave master mode. * * For more information, please visit http://www.bolutek.com * * Copyright@2013 www.bolutek.com. All rights reserved. * ******************************************************************** AT+NAME +NAME=lihao AT+BAUD +BAUD=4 AT+CMODE AT+PWRM +PWRM=1 AT+ROLE +ROLE=1
3. 能够at command 访问蓝牙模块后, 剩下就是设置一些参数和调试了。
AT+VERSION
+VERSION=Firmware V2.0.12,Bluetooth V4.0 LE
值得注意的是: 笔者购买的模块, ble 有主从两种模式。 默认是主模式,可以搜索并链接别的蓝牙设备。 从设备则可以允许别人匹配我。 密码默认一般是0000 或者 000000 如果是主模式是无法被别人链接的。
设置为 role 为0 后, 则用我们的手机设备可以搜索到该蓝牙模块,并可以匹配成功。
AT+ROLE0
+ROLE=0
OK
4. 可以匹配成功后,剩下的就是debug 你的蓝牙模块和你的手机进行串口的通讯了。 剩下的就都是你的想象力了。
我使用的ble 小扩展板
基于BLE-CC41-A 的蓝牙模块
此篇文章已被阅读4474 次