Bluno波特率的相关概念
Bluno的蓝牙芯片由于存在USB串口和物理串口,并且可以只使用其中一个,这样它就不像普通的USB转串口芯片那样简单了(普通的USB转串口芯片,usb串口波特率和物理串口波特率总是相同的)。下面先说下Bluno的思路:
1. USB的优先级别很好,当你把Bluno插到电脑上并用波特率X打开了USB串口,那么物理串口自动变成了X。
2. 我们还有一个AT+UART指令,会设置一个默认的串口波特率。那么它不就和USB那个波特率冲突了吗?当然不是这样的,由于USB级别高,打开USB串口后,物理串口波特率和它一致,但是USB没有插入或者USB插入但是USB串口没有打开的情况下,蓝牙芯片的物理串口波特率就是用的是AT+UART设置的那个。
3. 比如你设置了AT+UART=9600。那么默认的波特率就是9600了。在没有打开USB串口前,物理串口波特率就是9600.当你用38400打开USB串口时,物理串口波特率就变成了38400。而你用USB串口AT+UART=?查询到的是默认波特率,不是当前波特率,所以还是返回9600(返回当前波特率没有意义,因为和USB串口波特率相同)。
原来如此简单,大家知道怎么回事了吧。下面举个例子说明。
波特率默认是115200
1. 我用AT+UART=9600配置波特率,断电重启。
2. 拨到NORM模式,下载如下测试程序
/******************************
这个程序的主要功能是用AT指令将PAIR灯点亮,
由于在2540芯片的主循环中发现不是pair状态,会熄灭。
所以会有闪烁效果。
******************************/
void setup() {
// initialize serial:
Serial.begin(9600);
delay(1000);
}
void loop(){
Serial.println("AT+P13+OUT=0");
delay(500);
}
3. 拨到AT模式,上点测试,发现PAIR灯在闪烁,证明物理串口波特率一定是9600。
4. 用115200打开usb串口,那么物理串口也变成了115200,由于波特率改变,AVR芯片发送的数据蓝牙芯片接收不到了,PAIR灯闪烁会消失。
5. 再用9600打开usb串口,那么物理串口也变成了9600,AVR芯片发送的数据蓝牙芯片又可以接收到了,PAIR灯又开始闪烁了。
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\358023925\QQ\WinTemp\RichOle\C7_PD]0IY8OVCE{]L~1JWBX.jpg
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\358023925\QQ\WinTemp\RichOle\C7_PD]0IY8OVCE{]L~1JWBX.jpg
谢谢详细的说明!
请问 AT+P13+OUT=0 这类的命令怎么用?好像网页的说明里只有关于蓝牙部分的操作,这部分的没有。 很容易使用,举几个例子吧:
AT+P06+OUT=0 P06输出低电平
AT+P06+OUT=1 P06输出高电平
AT+P06+IN=? P06输入模式,返回P06检测到的高低电平
AT+P06+ADC=? P06作为ADC使用,返回ADC的值,12bit采样。
AT+PFF+IN=? 查询所有IO的电平状态
页:
[1]