|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
COCOFLY教程 ——疯壳无人机·系列 SPI(气压计数据获取) 4 D, a- E6 K, y- \: P
7 I: |$ z8 Y; o1 P* |, a
7 P1 t5 [9 J2 y5 _/ L; L7 W+ A
7 T- V; ], }2 m 图1
E+ }4 {. ^; Y( e, p4 m+ N7 K0 Y0 ?$ H/ c( @% i# |
/ G/ R0 a4 E4 G, ^5 }9 G- ~: g S
一、SPL06 简介7 T4 j3 a' k/ S& }" D9 } K- T* K
SPL06 是歌尔公司最新推出新款气压传感器,最新推出新款气压传感器SPL06-001,歌尔是全球领先的 MEMS 厂家,SPL06 利用歌尔多年积累的 MEMS 开发技术,通过搭载高精度的检测用 MEMS(MicroElectroMechanicalSystems)即微机电系统和低功耗的集成电路,实现了业界最高级别别的精度±5cm,SPL06 是一种具有高精度和低电流消耗的小型化的数字式气压传感器,兼具压力和温度测量两种特点。压力传感器元件基于电容传感器原理,保证温度变化过程中的高精度测量。小型封装结构适合移动应用和可穿戴设备等。SPL06 的内部信号处理器将压力和温度传感器元件的输出转换为 24 位数据。每个压力传感器已被单独校准并包含校准系数。在应用中使用系数将测量结果转换成真实的压力和温度值。+ I' I# E h; Y$ }. i# B P( H) ?
SPL06 的实物图如下所示。& a9 @" Y' |1 M6 d9 N2 m
& z( n0 z8 D, ~ o2 j" J
5 \! m" X8 c* B( _; g
图2
* x& q% ?( t& V5 Q3 R) A 二、气压计数据获取实验/ ~3 _6 a. C* b' a7 ]. L
气压计数据获取实验使用 STM32 的硬件 SPI 与气压计 SPL06 相连接,串口1 即 UART1,通过 USB 转串口模块连接电脑,把 SPI 获取到的 SPL06 的原始压力值以及原始温度值数据通过串口 1 传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把 USB 转串口的线接到视觉模组接口处。气压计 SPL06 在无人机顶部的白色 RGB 彩灯盒里,通过软排把 SPI 及供电口接出,如下图所示。
+ ]) }3 M6 z. Z
P- e4 V S* D- |6 W
" [% i6 F# W" e- y+ a+ U, @ 图3
6 |9 s1 o9 H9 I: o" W9 R/ a8 | 根据原理图,可以看到 SPL06 的的 SPI 接口分别是:PB15、PA5、PA6、PA7, 如下图所示。$ ~0 a$ F c' a8 ?& A& h* r# N
1 W- v, S7 C& X9 a- d; s
6 h9 {0 P, v4 N6 {3 ?* f& ^ 图4( h$ ^# J6 [( l% i! J% a
串口 1 的配置可以参考《串口(基础收发),配置代码(通过调用官方库)。获取 SPL06 的数据代码编写的思路如下:: C3 h, ?( W, t" h9 h% L
) }' x8 u! s' O7 t. Y* Z0 O
/ p7 y% P2 q! L( u# X3 k
表1$ V# f: E/ J2 K1 m
SPI 初始化代码如下:% |9 L) h! h2 B2 |) T: U5 f1 m
; \7 @4 W9 c! e" \2 E
) Y% p4 H: i( p. W& m
图5$ z( ^) z5 N& T
SPI 的读写代码如下。" G! e3 o2 y3 _& N7 X
( O+ h ~# ]1 D. D7 z
# M3 z" O+ m/ Q, Q) f 图6
& X9 _1 p# n# y9 w+ m2 M SPL06 的初始化代码如下。: ~. i$ i C0 f- E$ q6 \
2 v w0 G, B. E K, D. U8 _ h
! W* ~8 x+ Q% q! K 图7
3 W' `- {9 T: v2 a1 ?* ]4 j SPL06 的读写代码如下。4 m4 u3 b5 b% ]# e5 x e% \4 d& c; x5 T
2 [/ |- y9 _1 S% v- v H
: W& A9 l- n' J( Y( p; x/ N
图8
, w/ @$ Z* p' K* s' e 查看手册发现压力、温度的 24 位原始值在地址 0x00~0x05 上。
3 ~. N* t9 m5 {/ t1 G( i6 O6 l
; C8 _7 P" A8 ]% j) q
8 `0 ?5 h2 {) y T, _' R, [
图9) V5 t9 i/ m& p( a$ I
读取该寄存器数据,并发送到串口上。代码如下所示。
, Q" \ A4 P9 Y C. n4 i0 Z$ T8 g- a2 q
& g& I8 ?% I8 R" F 图10
3 D. m- e- D" d$ m, T 这里注意要把串口的发送也配置好,这样才能把数据发送到电脑。串口 1 通过 USB 转串口模块接到电脑,保存、编译、下载代码,可以看到 USB 转串口模块在不断地打印 SPL06 的 3 个字节原始压力值数据以及 3 个字节的原始温度数据,数据如下图所示:
& d3 N3 z: s1 L2 o( H9 F- ~4 V% r+ w8 H1 L# P
5 }# q3 m1 } i' U
图11! U k9 `1 m! Y/ Y
& i! o' x6 I# `6 Q" W/ y& Z
' u0 U8 j, P- ?" u4 o: U; U* } 更多完整学习资料和对应开源套件,请登陆官网:”疯壳“
# D% n3 V9 l& S7 N, K如需定制开发,请通过官网”疯壳“网页底部的”联系我们“进行联系6 G3 ?6 l: I! D- o* b
5 o7 o% R# N. t 文件下载请点击:
【7】SPI(气压计数据获取).pdf
(1.04 MB, 下载次数: 2)
3 ^" G4 y+ \# a! x( G2 } V1 I5 a. y5 _, G
/ J8 o) C/ x2 g4 |6 K
" c7 r+ `0 J: s! L5 `
/ n0 C) R1 m2 j1 U; Z) o% x6 u+ L* ~3 y+ [1 ?' ?- J" x
. ]" \. { a- ^$ j) h
|
|