国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

有淺入深的介紹BLE與MEMS中的開發板設計

MEMS技術 ? 來源:互聯網 ? 作者:佚名 ? 2018-03-31 08:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

當BLE遇到MEMS,就如同天使有了翅膀。本期從有淺入深的介紹BLE與MEMS的那些事,就從ST的STEVAL-IDB007V1開發板中BLE_SensorDemo例程開始。

藍牙入門網上資料很多,可參考《藍牙BLE權威教程》,或者看看干貨 | BLE開發,你要知道這幾件事

開發環境搭建請參考論壇帖子STEVAL-IDB007V1之透傳演示操作流程和所需軟件資源下載(http://bbs.eeworld.com.cn/thread-604229-1-1.html),從開始菜單進入BlueNRG-1 Navigator可以實際運行各種例程查看效果。

硬件連接:使用ST-Link V2中SWCLK與SWDIO與開發板對應的引腳連接,用來仿真;供電和串口都通過USB線纜。

下圖是局部放大圖:

會發現陀螺儀的值會跳變(不同的傾角下跳變的概率不一樣,更新頻率越高,跳變的概率越大),由于陀螺儀在原始的寄存器值上乘以了70,將跳變值除以70后為+255和-255。

經過一系列的摸索,和ST工程師的幫助,終于解決了問題,見下圖,那就是將BDU(Block Data Update)位置1,沒有置1的話,數據沒有準備好就被讀出來也是有可能的,這也就是為何更新頻率設置的越高就會越容易出現錯誤值的原因。

其實早在2015年在數據手冊中就建議將BDU位置1了,后來的官方初始化程序中也都將BDU置1了。

下面是不動芯片,僅僅將BDU置1后的效果:

因此想要準確的的獲取的數據記得將BDU位置1哦。

更高效的讀取數據傳感器使用的是SPI接口,這點很好,相比于IIC,SPI這是要快太多了,我們可以節約更多的時間用來做其他的事,也有利于節能,該芯片最高支持10MHz的SPI速度,但是驅動卻寫的不是很高效,官方代碼如下:

  1. static IMU_6AXES_StatusTypeDef LSM6DS3_G_GetAxes( int32_t *pData )

  2. {

  3. /*Here we have to add the check if the parameters are valid*/

  4. int16_t pDataRaw[3];

  5. float sensitivity = 0.0f;

  6. if(LSM6DS3_G_GetAxesRaw(pDataRaw) != IMU_6AXES_OK)

  7. {

  8. return IMU_6AXES_ERROR;

  9. }

  10. if(LSM6DS3_G_GetSensitivity( &sensitivity ) != IMU_6AXES_OK)

  11. {

  12. return IMU_6AXES_ERROR;

  13. }

  14. pData[0] = (int32_t)(pDataRaw[0] * sensitivity);

  15. pData[1] = (int32_t)(pDataRaw[1] * sensitivity);

  16. pData[2] = (int32_t)(pDataRaw[2] * sensitivity);

  17. return IMU_6AXES_OK;

  1. static IMU_6AXES_StatusTypeDef LSM6DS3_G_GetAxesRaw( int16_t *pData )

  2. {

  3. /*Here we have to add the check if the parameters are valid*/

  4. uint8_t tempReg[2] = {0, 0};

  5. if(LSM6DS3_IO_Read(&tempReg[0], LSM6DS3_XG_MEMS_ADDRESS, LSM6DS3_XG_OUT_X_L_G, 2) != IMU_6AXES_OK)

  6. {

  7. return IMU_6AXES_ERROR;

  8. }

  9. pData[0] = ((((int16_t)tempReg[1]) << 8) + (int16_t)tempReg[0]);

  10. if(LSM6DS3_IO_Read(&tempReg[0], LSM6DS3_XG_MEMS_ADDRESS, LSM6DS3_XG_OUT_Y_L_G, 2) != IMU_6AXES_OK)

  11. {

  12. return IMU_6AXES_ERROR;

  13. }

  14. pData[1] = ((((int16_t)tempReg[1]) << 8) + (int16_t)tempReg[0]);

  15. if(LSM6DS3_IO_Read(&tempReg[0], LSM6DS3_XG_MEMS_ADDRESS, LSM6DS3_XG_OUT_Z_L_G, 2) != IMU_6AXES_OK)

  16. {

  17. return IMU_6AXES_ERROR;

  18. }

  19. pData[2] = ((((int16_t)tempReg[1]) << 8) + (int16_t)tempReg[0]);

  20. return IMU_6AXES_OK;

  21. }

每次都是單次讀取(讀兩個字節)每一軸的數據,而且還獲取了一次sensitivity(讀一個字節)。

我們知道SPI要完成一次讀數據的操作,本質是需要讀寫兩次的,第一次將地址寫進去,然后再將0寫入,將數據弄出來。因此驅動如果需要讀取6軸的數據一共需要寫12次,讀18次SPI。而我認為sensitivity是開始設置的,可以不讀,然后6軸的數據可以一次全部讀出來,因為默認SPI地址是會累加的,

因此程序可以改成如下,然后將陀螺儀值乘以70,加速度計值乘以0.122

  1. void Get_Sensor_RawData(void){

  2. Sensor_IO_Read(NULL,LSM6DSL_ACC_GYRO_OUTX_L_G,regValue, 12);

  3. for(int i=0;i<6;i++){

  4. Sensor_Raw_Data[/size][/font][font=微軟雅黑][size=3] = ( ( ( ( int16_t )m_rx_buf[2*i+2] ) << 8 ) + (int16_t )m_rx_buf[2*i+1] );

  5. }

  6. }

從0x22地址開讀,也就是寫1次,讀12次,而且還節約了SPI的開啟和關閉的耗時,這樣就大大的提高的數據獲取的速度,如果可以使用DMA能夠更高效。

因此如果想要更加高效的使用陀螺儀加速度計,記得要連續的讀取12個字節且無需讀取靈敏度哦。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mems
    +關注

    關注

    129

    文章

    4475

    瀏覽量

    198778
  • 陀螺儀
    +關注

    關注

    44

    文章

    888

    瀏覽量

    101588
  • ST
    ST
    +關注

    關注

    32

    文章

    1187

    瀏覽量

    132534

原文標題:干貨 | 當BLE遇到MEMS——收服和調教

文章出處:【微信號:wwzhifudianhua,微信公眾號:MEMS技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    LuatOS平臺下BLE藍牙開發從入門到實踐

    者,全面介紹LuatOSBLE模塊的基礎知識,涵蓋角色定義(主機/從機)、服務配置、特征值操作與事件回調機制,并通過一個完整的溫濕度數據上報案例,逐步演示應用開發全過程。 一、
    的頭像 發表于 02-02 16:32 ?6129次閱讀
    LuatOS平臺下<b class='flag-5'>BLE</b>藍牙<b class='flag-5'>開發</b>從入門到實踐

    星鴻派——開源星閃開發板上線!首批試用申請~

    “本項目是一款基于海思WS63V100系列平臺的星閃開發板,支持Wi-Fi、BLE和SLE通信。可以應用于開發智能家電、物聯網智能終端等方面。配置了一塊0.96寸oled顯示屏,六個按鍵以及一個復位
    的頭像 發表于 01-27 08:04 ?509次閱讀
    星鴻派——開源星閃<b class='flag-5'>開發板</b>上線!首批試用申請<b class='flag-5'>中</b>~

    工程師必!288 元解鎖賽靈思開發板

    做項目、練技術、備賽事卻找不到高性價比開發板?合眾恒躍重磅福利——賽靈思ZYNQ系列開發板限時特惠,HZ-XC-7Z010-SP_EVM寵粉價僅需288元!
    的頭像 發表于 12-17 17:48 ?757次閱讀
    工程師必<b class='flag-5'>入</b>!288 元解鎖賽靈思<b class='flag-5'>開發板</b>

    ESP32-P4全功能開發板和ESP32-P4-TINY開發板該怎么選?看這篇就夠了!

    啟明云端基于樂鑫科技ESP32-P4芯片設計了多款開發板,這些開發板什么區別?基于應用場景如何選擇?本期,我們聚焦兩款代表性產品:WT99P4C5-S1開發板與WT9932P4-TI
    的頭像 發表于 12-09 18:02 ?888次閱讀
    ESP32-P4全功能<b class='flag-5'>開發板</b>和ESP32-P4-TINY<b class='flag-5'>開發板</b>該怎么選?看這篇就夠了!

    【作品合集】沁恒微電子CH585開發板測評

    沁恒微電子CH585開發板測評作品合集 產品介紹: CH585是集成BLE無線通訊和高速USB及NFC的RISC-V MCU/SoC。片上集成了2Mbps低功耗藍牙BLE通訊模塊、US
    發表于 09-08 10:38

    ESP32開發板元件資料

    ESP32開發板元件
    發表于 07-21 14:47 ?15次下載

    Vivado無法選中開發板的常見原因及解決方法

    對應的器件信息和約束文件(XDC),大大簡化工程初始化流程。然而,在某些情況下,我們可能會發現 Vivado 的界面無法選中目標開發板,導致只能手動選擇器件。那么,遇到這種情況該如何處理呢?
    的頭像 發表于 07-15 10:19 ?1702次閱讀
    Vivado無法選中<b class='flag-5'>開發板</b>的常見原因及解決方法

    如何選擇合適的芯科科技Wi-Fi開發板

    您正在尋找適用于超低功耗物聯網應用項目的Wi-Fi 開發板嗎?本文將介紹Silicon Labs(芯科科技)推出的所有SiWx917 Wi-Fi 6和低功耗藍牙5.4解決方案的Wi-Fi 開發板。SiWx917是目前市場上最節能
    的頭像 發表于 07-09 09:15 ?2682次閱讀

    微愛芯32位MCU開發板AiP32RV15X介紹

    AiP32RV15X開發板是一款基于RISCV內核的32位MCU開發板,提供了板載調試器、RESET、WAKEUP按鍵、三色LED、CAN收發器、USB接口、UART、ADC、SPI、IIC、RTC、TIMER、WDT、GPIO等資源。
    的頭像 發表于 06-17 10:54 ?836次閱讀
    <b class='flag-5'>中</b>微愛芯32位MCU<b class='flag-5'>開發板</b>AiP32RV15X<b class='flag-5'>介紹</b>

    ARM,NPU,FPGA三種核心的開發板 — 米爾安路飛龍派開發板

    最近我發現一個有趣的開發板。這個開發板集合了ARM核心,NPU核心甚至還有FPGA核心。它就是米爾新出的YM90X開發板。它基于安路科技所打造的芯片上海安路信息科技于2021年在上交所科創
    的頭像 發表于 06-13 08:03 ?1708次閱讀
    <b class='flag-5'>有</b>ARM,NPU,FPGA三種核心的<b class='flag-5'>開發板</b> — 米爾安路飛龍派<b class='flag-5'>開發板</b>

    【新品】遠距離圖傳數傳模塊開發板、藍牙模塊開發板、無線模塊開發板

    新品上市圖傳數傳模塊開發板藍牙模塊開發板國產無線模塊開發板部分型號參與送樣文末了解詳情↓↓↓EWT611-900NW20S遠距離圖傳數傳模塊開發板EWT611-900NW20S是一款入
    的頭像 發表于 06-12 19:33 ?1142次閱讀
    【新品】遠距離圖傳數傳模塊<b class='flag-5'>開發板</b>、藍牙模塊<b class='flag-5'>開發板</b>、無線模塊<b class='flag-5'>開發板</b>

    第二章 開發板與芯片介紹 詳解W55MH32芯片及開發板

    本章介紹了W55MH32芯片及開發板。該芯片采用Cortex-M3內核,主頻216MHz,集成以太網功能,L和Q兩種型號。配套開發板L-EVB功能豐富、Q-EVB為最小系統
    的頭像 發表于 05-26 09:19 ?1431次閱讀
    第二章 <b class='flag-5'>開發板</b>與芯片<b class='flag-5'>介紹</b>  詳解W55MH32芯片及<b class='flag-5'>開發板</b>

    NXP i.MX 91開發板#支持快速創建基于Linux?的邊緣器件

    例評估,使開發人員能夠加快產品開發,同時顯著降低成本。FRDM i.MX 91具有各種接口、PMIC和三頻無線電Wi-Fi^?^ 6、藍牙低功耗(BLE)和802.15.4模塊。^^
    的頭像 發表于 05-19 10:55 ?2862次閱讀
    NXP i.MX 91<b class='flag-5'>開發板</b>#支持快速創建基于Linux?的邊緣器件

    Linux開發板CAN總線測試方法,觸覺智能RK3568開發板演示

    本文介紹Linux開發板CAN總線測試方法,使用觸覺智能EVB3568鴻蒙開發板演示,搭載瑞芯微RK3568,四核A55處理器,主頻2.0Ghz,1T算力NPU;支持OpenHarmony5.0
    的頭像 發表于 04-11 19:14 ?1209次閱讀
    Linux<b class='flag-5'>開發板</b>CAN總線測試方法,觸覺智能RK3568<b class='flag-5'>開發板</b>演示

    雷卯收集云終端開發板

    收集云終端開發板明細如下: 如下是云終端開發板介紹: 云終端是一種依托于云計算技術的終端設備,它利用虛擬化技術,將計算和存儲資源集中于云端服務器,終端設備僅需處理顯示和輸入。 云終端的架構主要包括云端層、網絡層和終端層。云端
    的頭像 發表于 04-02 11:15 ?634次閱讀
    雷卯收集云終端<b class='flag-5'>開發板</b>