7065浏览
查看: 7065|回复: 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

rjyo  学徒

发表于 2014-6-2 18:28:40

谢谢详细的说明!

请问 AT+P13+OUT=0 这类的命令怎么用?好像网页的说明里只有关于蓝牙部分的操作,这部分的没有。
回复

使用道具 举报

齐天大妖孽  中级技师
 楼主|

发表于 2014-6-6 09:34:33

很容易使用,举几个例子吧:
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的电平状态
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail