|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
COCOFLY教程 ——疯壳无人机·系列 SPI(气压计数据获取)
9 H0 {/ l \2 S: f' A/ F& _) W3 K4 H* b# P) {
, z+ i" f+ D+ |1 n' x ~: y
3 I! k) Z; N0 j) _
图1
5 w3 T) {) l$ }$ c L4 l8 C% O) L% h3 a
- ~' q. d) M% b# \7 H! r9 Q/ F
一、SPL06 简介
+ x% G$ b" ?, u% b6 m8 U+ q7 q7 D SPL06 是歌尔公司最新推出新款气压传感器,最新推出新款气压传感器SPL06-001,歌尔是全球领先的 MEMS 厂家,SPL06 利用歌尔多年积累的 MEMS 开发技术,通过搭载高精度的检测用 MEMS(MicroElectroMechanicalSystems)即微机电系统和低功耗的集成电路,实现了业界最高级别别的精度±5cm,SPL06 是一种具有高精度和低电流消耗的小型化的数字式气压传感器,兼具压力和温度测量两种特点。压力传感器元件基于电容传感器原理,保证温度变化过程中的高精度测量。小型封装结构适合移动应用和可穿戴设备等。SPL06 的内部信号处理器将压力和温度传感器元件的输出转换为 24 位数据。每个压力传感器已被单独校准并包含校准系数。在应用中使用系数将测量结果转换成真实的压力和温度值。! |" }9 k9 m3 a+ z! l/ P- c3 i
SPL06 的实物图如下所示。
; Q6 b, U1 v; O1 H, P& d0 |% G# r% T s
# n) |) b$ a6 ^/ |0 u U' T* g
图2/ t0 r9 @# r- W8 r) R, {
二、气压计数据获取实验' Z1 g) D- G. b7 w" g
气压计数据获取实验使用 STM32 的硬件 SPI 与气压计 SPL06 相连接,串口1 即 UART1,通过 USB 转串口模块连接电脑,把 SPI 获取到的 SPL06 的原始压力值以及原始温度值数据通过串口 1 传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把 USB 转串口的线接到视觉模组接口处。气压计 SPL06 在无人机顶部的白色 RGB 彩灯盒里,通过软排把 SPI 及供电口接出,如下图所示。/ Z: Q9 C+ X* O1 |
c4 s9 W K- D8 G% G" ~; A0 q
* V: N9 m3 G9 z6 S ~( n! J. o
图3
8 z! o3 }. t7 N/ Y, L1 u# O% n 根据原理图,可以看到 SPL06 的的 SPI 接口分别是:PB15、PA5、PA6、PA7, 如下图所示。6 }* `+ x0 c/ d+ v& u: |1 v
0 h. O) y6 L, G, N$ r
V K% @+ @4 Z" ? 图49 P$ K& H# E& M& }
串口 1 的配置可以参考《串口(基础收发),配置代码(通过调用官方库)。获取 SPL06 的数据代码编写的思路如下:! _: e3 x7 I3 @: }4 `
6 a/ }" K* L8 c3 |5 S
/ Z* D( x, I$ F5 A
表1
) H4 p7 e! x( j& v" { SPI 初始化代码如下:9 {5 a4 R/ `8 O+ k
- a* o' s+ p5 R7 A# J) _" {8 T
' e- B1 u. n a/ e: C' A. W" d* d
图5
. M7 X. d8 i# F# v SPI 的读写代码如下。
3 z) @, v% I# T$ |$ u( v7 {* ~% `
7 k4 p/ j4 {9 a3 w% z( c+ [ u
( Q1 M/ g) U; u8 @! X
图6- X+ `; T D Z+ g4 K$ j
SPL06 的初始化代码如下。
! e8 ^$ b9 [9 T# @3 X) g y! W- R: I! V
: ~" P! I* z! r8 j/ y
图7! i' Q5 n' G2 G; f
SPL06 的读写代码如下。4 k7 U) d3 P# b. ~
8 K& j) u/ P0 o q# o; A. [
6 W: J: D2 O( `) D7 [# u
图8
6 v" |, S9 z& n0 M 查看手册发现压力、温度的 24 位原始值在地址 0x00~0x05 上。
+ \& e" {* D& p% d3 v' o. ^9 c1 b1 D7 i: d6 f* G
! ^4 ~% k4 f4 Z- h3 S- x$ _
图9$ D* P1 G7 E8 Q6 Y: C, v# k$ d
读取该寄存器数据,并发送到串口上。代码如下所示。
3 l) ~1 {, G2 U7 o' }* i* f8 u8 H$ m
& v* H; x% V: ?: {
" r6 B! T3 |$ o. |" z. e) R 图10, A# U" F4 V* |! V% f: U6 J; t
这里注意要把串口的发送也配置好,这样才能把数据发送到电脑。串口 1 通过 USB 转串口模块接到电脑,保存、编译、下载代码,可以看到 USB 转串口模块在不断地打印 SPL06 的 3 个字节原始压力值数据以及 3 个字节的原始温度数据,数据如下图所示:
) t0 q% X! p4 P$ D2 P4 }) [ C. m2 K- p' g; M+ e, f* Z
! ?* `3 e! N. m6 x 图11
9 o0 D& `% E/ v; U$ [( v0 m
+ V1 k+ _" v9 z/ F8 |
u+ S1 h% f9 X- b 更多完整学习资料和对应开源套件,请登陆官网:”疯壳“
5 A" ^: ]) I u1 y, B% W0 y3 @( e如需定制开发,请通过官网”疯壳“网页底部的”联系我们“进行联系
) K+ a3 G: W; O. ]! W/ y3 ]; P; A6 g
1 c; L& ^% d' m# `9 [ 文件下载请点击:
【7】SPI(气压计数据获取).pdf
(1.04 MB, 下载次数: 2)
3 ~4 {4 w4 W( [9 | a0 C4 g5 `
4 q6 q0 U" b7 [) j- i
8 @/ a' `# ^" n; o' R* {/ R1 v' k S5 H
( H- }9 J$ y# f& ?
8 _% f6 N7 u$ Y1 {( L+ i
5 u( T i/ \+ R |
|