7036| 2
|
[已解决] 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 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed