久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3060|回復: 1
打印 上一主題 下一主題
收起左側(cè)

飛控開發(fā)基礎-[6] STM32 SPI(六軸傳感器數(shù)據(jù)獲取)

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:716213 發(fā)表于 2020-3-26 18:07 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


SPI(六軸傳感器數(shù)據(jù)獲取)
一、
ICM20602簡介
   六軸傳感器在當今智能穿戴和定位導航產(chǎn)品中被廣泛應用,而六軸傳感器中做的最好的要屬InvenSense公司的產(chǎn)品了,ICM20602便是其推出的優(yōu)秀六軸傳感器之一。
ICM20602集成3軸加速度計和3軸陀螺儀,其中陀螺儀量程范圍可以選擇+/-250dps+/-500dps+/-1000dps+/-2000dps這四種,而加速度計量程范圍可選擇+/-2g+/-4g+/-8g+/-16g四種。
ICM20602支持高達400KHzI2C以及高達10MHzSPI,具有較高的接口兼容性。
ICM20602的實物圖如下所示。
ICM20602的引腳如下圖所示。
二、SPI概述
SPI是指Serial Peripheral Interface的縮寫,即串行外圍設備接口,是一種高速的、全雙工、同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的引腳,SPI4條通信線為:
1MISO主入從出接口;
2MOSI主出從入接口;
3SCLK由主設備產(chǎn)生的時鐘信號;
4CS由主設備控制的從設備片選信號。
STM32F103SPI的時鐘最高可達18MHz,支持DMA
SPI主從機通信,如下圖所示:
當有多個設備掛載在SPI總線上,其接線圖如下圖所示。
單片機和外圍器件之間進行SPI同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,低位在前,高位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來說比I2C總線要快,速度可達到幾Mbp,相比于其它總線,SPI協(xié)議簡單,相對數(shù)據(jù)速率高,但是SPI也有它的缺點,比如沒有指定的流控制,沒有應答機制確認是否接收到數(shù)據(jù)。

三、SPI總線協(xié)議
SPI通信需要掌握以下知識: 時鐘極性時鐘相位以及SPI的傳輸時序。
(1)時鐘極性,SPI通過時鐘極性(CPOL)來決定在總線空閑時,同步時鐘(SCLK)信號線的電平是高電平還是低電平。當時鐘極性為0時(CPOL=0),SCLK信號線在空閑時為低電平;當時鐘極性為1時(CPOL=1),SCLK信號線在空閑時為高電平;
(2)時鐘相位,SPI通過時鐘相位(CPHA)用來決定何時進行信號采樣。當時鐘相位為1時(CPHA=1),在SCK信號線的第二個跳變沿進行采樣;這里的跳變沿究竟是上升沿還是下降沿?這取決于時鐘的極性。當時鐘極性為0時,取下降沿;當時鐘極性為1時,取上升沿;如下圖所示:
當時鐘相位為0時(CPHA=0),在SCK信號線的第一個跳變沿進行采樣。跳變沿同樣與時鐘極性有關:當時鐘極性為0時,取上升沿;當時鐘極性為1時,取下降沿;如下圖所示:
四、 SPI寄存器
在本次實驗中使用到的是STM32的硬件SPISTM32的硬件SPI所涉及的寄存器較多,這里挑選較為重要的來講解。
1SPI_CR1SPI控制寄存器1,如下圖所示:
其中SPESPI使能控制位,等于1時使能SPI,等于0時關閉SPIBR[2:0]SPI的波特率控制位,BR[2:0]等于000則波特率為fPCLK/2,等于001則波特率為fPCLK/4,等于010則波特率為fPCLK/8,等于011則波特率為fPCLK/16,等于100則波特率為fPCLK/32,等于101則波特率為fPCLK/64,等于110則波特率為fPCLK/128,等于111則波特率為fPCLK/256MSTRSPI主從模式選擇位,等于0時為從模式,等于1時為主模式;CPOLSPI時鐘極性設置位,為0則空閑時鐘為低電平,為1則空閑時鐘為高電平;CPHASPI時鐘相位設置位,等于0時,在第一個時鐘跳邊沿開始采集,等于1時,在第2個時鐘跳邊沿開始采集。
2SPI_SRSPI狀態(tài)寄存器,如下圖所示:

其中TXE是發(fā)送緩沖區(qū)狀態(tài)位,該位為0時發(fā)送緩沖區(qū)非空,為1時發(fā)送緩沖區(qū)為空;RXNE為接收緩沖區(qū)狀態(tài)位,該位為0時接收緩沖區(qū)為空,該位為1時,接收緩沖區(qū)為非空。
3SPI_DRSPI數(shù)據(jù)寄存器,用于存儲接收或者發(fā)送的數(shù)據(jù)。SPI_DR的描述如下圖所示:

其中DR[15:0]存放SPI數(shù)據(jù)。
五、六軸傳感器數(shù)據(jù)獲取實驗
六軸傳感器數(shù)據(jù)獲取實驗使用STM32的硬件SPI與六軸傳感器ICM20602相連接,串口1UART1,通過USB轉(zhuǎn)串口模塊連接電腦,把SPI獲取到的六軸數(shù)據(jù)通過串口1傳輸?shù)诫娔X端的串口調(diào)試助手顯示出來。做該實驗的時候需要把視覺模組暫時取下,并且把USB轉(zhuǎn)串口的線接到視覺模組接口處。六軸傳感器ICM20602在無人機頂部的白色RGB彩燈盒里,通過軟排把SPI及供電口接出,如下圖所示。
根據(jù)原理圖,可以看到ICM20602的的SPI接口分別是:PB13PA5PA6PA7,如下圖所示。

串口1的配置可以參考《串口(基礎收發(fā)),配置代碼(通過調(diào)用官方庫)
獲取ICM20602的數(shù)據(jù)代碼編寫的思路如下:

代碼思路
1
管腳配置
1、定義結(jié)構(gòu)體;
2、使能時鐘;
3、填充結(jié)構(gòu)體;
4、裝載結(jié)構(gòu)體。
2
SPI配置
1、定義結(jié)構(gòu)體;
2、使能時鐘;
3、填充結(jié)構(gòu)體;
4、裝載結(jié)構(gòu)體;
5、使能SPI
3
SPI讀寫邏輯
1、讀一個字節(jié);
2、寫一個字節(jié)。
4
ICM20602驅(qū)動
1、從傳感器讀;
2、從傳感器寫;
3、ICM20602初始化。
SPI初始化代碼如下:
SPI的讀寫代碼如下。

ICM20602的初始化代碼如下。
ICM20602的讀寫代碼如下。
這里注意要把串口的發(fā)送也配置好,這樣才能把數(shù)據(jù)發(fā)送到電腦。串口1通過USB轉(zhuǎn)串口模塊接到電腦,獲取ICM20602代碼如下。
保存、編譯、下載代碼,可以看到USB轉(zhuǎn)串口模塊在不斷地打印ICM20602X軸加速度高8位,數(shù)據(jù)如下圖所示:


以上的pdf格式文檔51黑下載地址:
2.飛控開發(fā)基礎-【6】SPI(六軸傳感器數(shù)據(jù)獲取).pdf (1.27 MB, 下載次數(shù): 31)


圖片10.png (324.57 KB, 下載次數(shù): 66)

圖片10.png

圖片9.png (293.55 KB, 下載次數(shù): 64)

圖片9.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1011736 發(fā)表于 2022-10-9 14:01 | 只看該作者
您好,可以分享一下完整代碼嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美大片一区二区 | 91中文字幕在线观看 | 97久久精品午夜一区二区 | 韩日一区 | 一区二区三区小视频 | 国产一级淫片免费视频 | 九九伦理电影 | 亚洲欧美日韩在线不卡 | 久久精品16 | 亚洲国产成人精品在线 | 欧美日高清 | 国产最新视频在线 | 四虎永久免费黄色影片 | 国产小视频在线 | 四虎影视1304t | 国产免费黄网 | 国产一区二区免费 | 亚洲高清视频在线观看 | ww亚洲ww亚在线观看 | 一区二区三区视频在线免费观看 | 天天弄| 国产成人在线视频免费观看 | 91久操视频 | 欧美日韩精品中文字幕 | 欧洲成人免费视频 | 色综合久| 玖玖久久| 精产国产伦理一二三区 | 日本在线一区二区 | 超碰激情| 久久久新视频 | 91原创视频在线观看 | 久久亚洲国产精品 | 欧美色综合一区二区三区 | 中文字幕av一区二区三区 | 欧美日韩一区二区三区四区五区 | 欧美日韩不卡合集视频 | 国产日产精品一区二区三区四区 | 在线观看成人免费视频 | 亚洲欧美国产精品一区二区 | 亚洲欧美一区二区三区国产精品 |