【蓝牙BLE】cc2540主机获取广播包存在的一些问题。

cc2540主机获取广播包的具体实现过程请参考另一篇博文《cc2540主机获取广播数据》,该博文转载自大香瓜的博

客。我自己烧到板子后发现存在一些问题,可能是还没达到香瓜的大神境界,那么我就从小菜鸟的角度说一下我遇到

的这个问题和解决办法吧。在主机获取广播数据过程中,香瓜主要是用到两个函数,Get_Adtype_Data和Hex_To_Str.

我顺着博文做下去之后发现Hex_To_Str这个函数并不能输出我想要的数据。以下是我写的代码,想让该值显示在屏幕上,

HalLcdWriteStringValue( "data:",(uint16)(Hex_To_Str(pEvent->deviceInfo.pEvtData + adTypeData_index)),10,HAL_LCD_LINE_5);

结果无论我怎么修改偏移值adTypeData_index,在屏幕上显示的总是这几个奇怪的数字3957

我昨天还多次修改了广播数据中的数据模式值,然并卵。找了一大堆相关的资料来看,还是找不到解决方案。

今天早上我偶然在《蓝牙4.0BLE开发完全手册》看到可以直接获取广播数据时,就果断放弃了Hex_To_Str函数。这

样反而简单些。


只要我设定好想要值的位置,就能获取该值。烧在板子上,也能成功实现了。当然,香瓜哥自己写的博文他亲测是绝

对可靠的,只是我实际应用的时候需要根据我自己的情况做出适当的修改。在这里也非常感谢香瓜哥给予的耐心解

答。具有开源精神的大神啊。。

你可能感兴趣的:(广播,BLE)