微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 利用 Sensortag 套件的開發

利用 Sensortag 套件的開發

时间:10-02 整理:3721RD 点击:

我的問題是在利用 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查看的传感器数据 

尝试下升级固件,或许能解决问题

如楼上所言,建议您更新您的固件

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top