⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arm平台上蓝牙协议栈bluez的移植使用和配置 - colorant的专栏 - csdn博客.htm

📁 ARM平台上蓝牙协议栈Bluez的移植使用和配置 .rar
💻 HTM
📖 第 1 页 / 共 5 页
字号:
size=5>        
</FONT></SPAN></FONT></SPAN></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">何谓硬件初始化</SPAN></H2>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT 
size=3>硬件初始化,指的是配置蓝牙芯片,将其置于一个能够正常通讯的状态。</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT 
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对于</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">CSR</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的芯片来说,就是通过设置</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">PSKEY</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,设置其晶振频率,</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">UART</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">波特率等等一些关键参数。</SPAN><FONT 
face="Times New Roman"> </FONT><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果使用的是</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">USB</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">形式的适配器,因为其</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">EEPROM</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">存储了相关的默认参数,这一步很可能不需要做,而我使用的是不带</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">EEPROM</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">ROM</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本芯片,如何正确完成初始化工作着实让我折腾了一阵。</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT 
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对于其它芯片,没有太多研究,不过,据我有限的了解,</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">TI</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的芯片在</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">hciattach</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时也需要完成一些额外的初始化工作,其它如</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">ST</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的芯片则可能需要下载</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">firmware</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT 
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<H2 style="MARGIN: 0cm 0cm 0pt 31.2pt"><SPAN lang=EN-US 
style="mso-fareast-font-family: 'Times New Roman'"><SPAN 
style="mso-list: Ignore"><FONT face="Times New Roman">3.2<SPAN 
style="FONT: 7pt 'Times New Roman'"><FONT 
size=5>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</FONT></SPAN></FONT></SPAN></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">硬件初始化步骤</SPAN></H2>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通常蓝牙芯片的初始化和协议绑定可以通过</SPAN><FONT 
face="Times New Roman"> <SPAN lang=EN-US>hciattach </SPAN></FONT><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来完成(通过配置</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">bluez</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的启动脚本,可以不需要使用</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">hciattach</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,标准发行版应该都是不用</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">hciattach</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,如何配置,还没有研究</SPAN><FONT 
face="Times New Roman"> </FONT><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。。。</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman"> 8 </FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">)</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT 
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
lang=EN-US><FONT face="Times New Roman">Hciattach </FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需要的参数主要包括</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman"> TTY</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">节点,设备类型,波特率等。多数类型的设备的初始化工作,在选择了正确的设备类型参数后,都由</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">hciattach</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">init_uart</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数中调用具体的初始化函数所完成。</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT 
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">很遗憾的是,因为要重新设置晶振频率和波特率,并同步</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">BCSP</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议,这种方式好像处理不了我所使用的芯片(不排除我没有找到正确的解决方案的可能性),我最终的解决办法是在</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">hciattach</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之前,使用</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">Bluez-utils</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里的</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">BCCMD</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">工具先完成这些</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">PSKEY</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的设置工作。</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT 
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT 
size=3>具体命令是:</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT 
face="Times New Roman" size=3>bccmd -t bcsp -d /dev/ttyS1 psload -r 
csr.psr</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT 
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在这时,由于</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">HCI</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口还没有启动,所以只能使用</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">BCSP</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议来进行通讯,我的设备是暴露在</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">ttyS1</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下,你的可能不一样,</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">-r</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参数指明在</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">psload</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">完成</SPAN><FONT 
face="Times New Roman"> <SPAN lang=EN-US>PSKEY</SPAN></FONT><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的批量加载操作之后,对芯片进行</SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman">Warmreset</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,否则这些参数的修改不会起作用。</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT 
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
lang=EN-US><FONT face="Times New Roman">Csr.psr</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的内容取决与你的芯片,我的大致如下:</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT 
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT 
face="Times New Roman" size=3>// PSKEY_ANA_FREQ</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
lang=EN-US><FONT face="Times New Roman">&amp;01fe = <ST1:CHMETCNV w:st="on" 
unitname="C" sourcevalue="9" hasspace="False" negative="False" numbertype="1" 
tcsc="0">9C</ST1:CHMETCNV>40 // </FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">相当于</SPAN><ST1:CHMETCNV 
w:st="on" unitname="m" sourcevalue="40" hasspace="False" negative="False" 
numbertype="1" tcsc="0"><SPAN lang=EN-US><FONT 
face="Times New Roman">40M</FONT></SPAN></ST1:CHMETCNV><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的晶振</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT 
face="Times New Roman" size=3>// PSKEY_UART_BAUD_RATE</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
lang=EN-US><FONT face="Times New Roman">&amp;01be = 0EBF // 
921600</FONT></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的波特率</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT 
face="Times New Roman" size=3>// PSKEY_UART_SEQ_WINSIZE</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT 
face="Times New Roman" size=3>&amp;0407 = 0006</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT 
face="Times New Roman" size=3>// BDADDR</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT 
face="Times New Roman" size=3>&amp;0001 = 1122 3344 5566 7788</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -