利用 Sensortag 套件的開發
我的問題是在利用 ti 的 sensortag 開發時,讀不了accelerometer 的 data.
利用 ti 的 sensortag project 下載到 sensortag 再用 lightblue 讀取是完全沒問題的. 所以硬件是正常的.
但是當我用 SimpleBLEPeripheral\CC2541DB 的 workspaces 時, accelerometer 便只能讀出一個一直都不會改變的數值 (0x45).
我的開發流程如下,請幫忙指點一下問題出在哪裡:
1. 打開 C:\Texas Instruments\BLE-CC254x-1.4.0\Projects\ble\SimpleBLEPeripheral\CC2541DB 裡面的SimpleBLEPeripheral.eww
2. 開了後把 CC2541DK-MINI Keyfob 改為 CC2541
3. 把 C:\Texas Instruments\BLE-CC254x-1.4.0\Components\hal\target\CC2541ST 的 CC2541ST folder 複製成 CC2541Demo
(路徑是 C:\Texas Instruments\BLE-CC254x-1.4.0\Components\hal\target\CC2541Demo)
4. 回到 workspace, 把在 Target 內的 CC2540EB 內的所有 .h/.c file 刪除, 之後把 CC2541Demo 內的 .h/.c 加入.
5. 到 Compiler options 作出以下改動
C/C ++ Compiler -> Preprocessor -> Additional include directories: ->
加上 "$PROJ_DIR$\..\..\..\..\Components\hal\target\CC2541Demo"
之後再刪去 "$PROJ_DIR$\..\..\..\..\Components\hal\target\CC2540EB"
之後再把LCD設成 HAL_LCD=FALSE
6. 之後到 simpleBLEPeripheral.c -> SimpleBLEPeripheral_Init() -> 加入 HalAccInit();
7. 之後再去 simpleBLEPeripheral.c -> performPeriodicTask() -> 加入以下:
uint8 accData[3];
if (HalAccRead(accData))
{
HalLedSet( HAL_LED_2, HAL_LED_MODE_TOGGLE );
SimpleProfile_SetParameter( SIMPLEPROFILE_CHAR4, sizeof(uint8), &accData[1]);
}
8. 之後再改一下 Period:
#define SBP_PERIODIC_EVT_PERIOD 500
完成後便 compile 和下載到 TI 的 sensortag,再用 ios 的 lightblue set char4 為 "Start Notify"
我看見 HAL_LED_2 是有跟著 performPeriodicTask() 作出週期性的閃爍.
這便証明了 HalAccRead(accData) 是 return true 的. 亦即是成功讀取 accData
可是我搖動 sensortag 時, lightBlue 的 char4 只出了 0x45 這個數字.
問題出在哪了?
请问这个问题你解决了吗?我在做android 的app时也遇到类似的问题,读取的数据一直都不变……
表示遇到和你一样的问题,我的事磁力传感器和加速度传感器都不能够都没有数据,我使用BLE devicemonitor查看的传感器数据
尝试下升级固件,或许能解决问题
如楼上所言,建议您更新您的固件