|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
COCOFLY教程 ——疯壳无人机·系列 SPI(气压计数据获取) 2 @; \$ |: L; j6 k6 S
/ J4 S* E7 ~) D8 t2 }
: X- Y3 k4 `" ~% u4 H& R! v3 \8 P
5 R4 v5 R9 A2 Q F1 k. J
图1
* O9 K( D, S9 h, W' u) U" D6 X% I. W$ X# Z
8 j. ^' S/ i2 ~7 j) X& K* _ 一、SPL06 简介
5 ]4 D7 a/ r( Z/ o, \+ K SPL06 是歌尔公司最新推出新款气压传感器,最新推出新款气压传感器SPL06-001,歌尔是全球领先的 MEMS 厂家,SPL06 利用歌尔多年积累的 MEMS 开发技术,通过搭载高精度的检测用 MEMS(MicroElectroMechanicalSystems)即微机电系统和低功耗的集成电路,实现了业界最高级别别的精度±5cm,SPL06 是一种具有高精度和低电流消耗的小型化的数字式气压传感器,兼具压力和温度测量两种特点。压力传感器元件基于电容传感器原理,保证温度变化过程中的高精度测量。小型封装结构适合移动应用和可穿戴设备等。SPL06 的内部信号处理器将压力和温度传感器元件的输出转换为 24 位数据。每个压力传感器已被单独校准并包含校准系数。在应用中使用系数将测量结果转换成真实的压力和温度值。
: j$ x6 F, S2 x7 ]/ L SPL06 的实物图如下所示。4 E1 ]3 E U% k
- f( X" U3 J# X& ]$ _1 c I( B
! O A' x6 z1 s) R 图2
% X8 q8 ~* c, h- g. b 二、气压计数据获取实验
! s( w3 o. A: t2 \1 F" u! |! i3 N 气压计数据获取实验使用 STM32 的硬件 SPI 与气压计 SPL06 相连接,串口1 即 UART1,通过 USB 转串口模块连接电脑,把 SPI 获取到的 SPL06 的原始压力值以及原始温度值数据通过串口 1 传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把 USB 转串口的线接到视觉模组接口处。气压计 SPL06 在无人机顶部的白色 RGB 彩灯盒里,通过软排把 SPI 及供电口接出,如下图所示。( }; S) ^+ V+ S- }9 J
4 w9 X8 C g) }# l9 B, B
, F$ k" p# ?( S ^. v 图3) {! n3 N1 U8 p: ]
根据原理图,可以看到 SPL06 的的 SPI 接口分别是:PB15、PA5、PA6、PA7, 如下图所示。6 M1 Z- \" [% A* [& A0 B8 C4 M
( S' _$ k, U* k' b$ l5 W% i
3 W! p: ?! P* ^. P7 X/ B" M 图48 o4 [' i& P/ O% x% \9 ^
串口 1 的配置可以参考《串口(基础收发),配置代码(通过调用官方库)。获取 SPL06 的数据代码编写的思路如下:
0 j& S( s5 |% u9 p" x1 n/ S: D) R
6 O% b* |' c7 ~% `# C& W+ r' e
e. t* m8 J+ p: u 表1
9 f8 `; ^- M! D: q% `' g) w SPI 初始化代码如下:7 h- n" [9 J z
, f$ h8 M9 Q: I2 U/ a5 i1 r
Q9 d' b; b2 L! p, X 图56 n, }; A6 N _# N6 @. v b6 a
SPI 的读写代码如下。
: i5 R7 M/ v9 S$ X; G) Y
3 D% K' ~5 d$ L1 x
& B y }2 r4 I+ x. H( i, k* A
图6* F9 M5 u0 i7 L' K+ o
SPL06 的初始化代码如下。
+ `3 h# }3 V/ V( W8 Y
; d' R7 C# S1 d$ u- l( |
" C, X$ F! B! o7 ? 图7
) S7 v) D9 |+ S1 O9 u5 N6 n" r SPL06 的读写代码如下。
6 w+ v9 g+ i+ u9 d. v$ \. G, G8 a7 s9 S9 f; @1 P1 K' H
6 q' c/ U8 M' i/ j) @! B. K 图8, l0 S" I" @5 E
查看手册发现压力、温度的 24 位原始值在地址 0x00~0x05 上。
+ V+ X- \: X& Z( X+ P" B' G0 G
, l" s' `* W- [( [& q% [/ ?, W0 }, g
* [6 F; L- o( Z8 W3 j 图9
' M# ~# r X7 k" t' T 读取该寄存器数据,并发送到串口上。代码如下所示。8 O) T* U2 @/ T. H" ^! L. V
$ }1 Y' e- t+ u# Q% u5 I
1 S- d0 Y4 i; C# ~* j0 _) z: I* D: D 图10* u* Z3 Y: \2 v! u
这里注意要把串口的发送也配置好,这样才能把数据发送到电脑。串口 1 通过 USB 转串口模块接到电脑,保存、编译、下载代码,可以看到 USB 转串口模块在不断地打印 SPL06 的 3 个字节原始压力值数据以及 3 个字节的原始温度数据,数据如下图所示:3 o9 A9 u! z9 H) f& T
. W' ~& F: _' @, |
: n0 Q/ e$ n% S0 E8 L 图11
X1 x1 i$ P$ }: U3 C4 k' Q; l) D" B, G& ? I1 s: j4 \$ n+ R3 q0 z% w
# h: Y. I8 D1 O8 G 更多完整学习资料和对应开源套件,请登陆官网:”疯壳“ 8 X2 ^* m- G) M9 b' }" A2 O1 t
如需定制开发,请通过官网”疯壳“网页底部的”联系我们“进行联系- M/ C* w2 a/ I% z: k2 g0 |
9 I2 P ^7 j( c" R# H 文件下载请点击:
【7】SPI(气压计数据获取).pdf
(1.04 MB, 下载次数: 2)
% o* b& D. E4 U8 r8 b3 p! C' g: P
& r2 e, T7 r3 V" o# ^
6 n' _9 j; h2 |# n( T
, F s# [0 B/ ^; a, a
( e5 O. V$ |, u7 H2 b; n, G* q* B) L3 @) ^' Q( C" o
9 k' r* l2 W6 x9 |
|
|