找回密码
 注册
关于网站域名变更的通知
查看: 230|回复: 0
打印 上一主题 下一主题

【飞控开发基础教程7】疯壳·开源编队无人机-SPI(气压计数据获取)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-12 16:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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 |
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-8 13:41 , Processed in 0.140625 second(s), 28 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表