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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
COCOFLY教程
——疯壳无人机·系列
SPI(气压计数据获取)
& L3 p- K% o, R' `% S

8 ?$ I: S' j  y/ {( O2 ?* ]$ U+ U' k$ q# f' n7 P
  / U3 F% ]( v. [7 Q
    图1
9 N7 {  ~# |- Z8 s9 F# A) S7 ~% @# u9 `( x2 d# B/ B

9 Z# b4 e2 O: \% j8 o# c    一、SPL06 简介# B, u4 E" M9 Q6 M2 l% V" X
    SPL06 是歌尔公司最新推出新款气压传感器,最新推出新款气压传感器SPL06-001,歌尔是全球领先的 MEMS 厂家,SPL06 利用歌尔多年积累的 MEMS 开发技术,通过搭载高精度的检测用 MEMS(MicroElectroMechanicalSystems)即微机电系统和低功耗的集成电路,实现了业界最高级别别的精度±5cm,SPL06 是一种具有高精度和低电流消耗的小型化的数字式气压传感器,兼具压力和温度测量两种特点。压力传感器元件基于电容传感器原理,保证温度变化过程中的高精度测量。小型封装结构适合移动应用和可穿戴设备等。SPL06 的内部信号处理器将压力和温度传感器元件的输出转换为 24 位数据。每个压力传感器已被单独校准并包含校准系数。在应用中使用系数将测量结果转换成真实的压力和温度值。4 \1 Q/ P: H9 z3 {1 K+ k& ~9 k  x
    SPL06 的实物图如下所示。
! W$ k2 n( h6 C' L# t0 r% U% q6 }- e( S" B1 q
   
$ B$ b" D$ ?9 \+ b4 T0 X; c" a    图2
: a( S+ z$ _0 S1 ^2 {' H    二、气压计数据获取实验) q7 J2 K4 t* O  S
    气压计数据获取实验使用 STM32 的硬件 SPI 与气压计 SPL06 相连接,串口1 即 UART1,通过 USB 转串口模块连接电脑,把 SPI 获取到的 SPL06 的原始压力值以及原始温度值数据通过串口 1 传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把 USB 转串口的线接到视觉模组接口处。气压计 SPL06 在无人机顶部的白色 RGB 彩灯盒里,通过软排把 SPI 及供电口接出,如下图所示。5 }7 H" A& n) _( q! K

* P( U% b7 ]/ I8 b4 K    
( B8 N6 i, w0 ?9 X1 B    图3
4 ?1 F6 _& l$ m# }$ G    根据原理图,可以看到 SPL06 的的 SPI 接口分别是:PB15、PA5、PA6、PA7, 如下图所示。
, I6 s: S1 ?- ]$ O5 T8 [9 t0 a5 _: h, L& e" q7 J" w9 `! ?
  
. I5 {$ r! p7 \/ V) w7 Y. ]    图4
! }5 Z, W' n0 I& t) m* P3 L8 w    串口 1 的配置可以参考《串口(基础收发),配置代码(通过调用官方库)。获取 SPL06 的数据代码编写的思路如下:4 O; _! P6 p# R

! S  K: P3 a3 o* r' c$ Z     . V2 F0 w) C) y/ K! Q- d5 u6 _
    表1. U( h' L) h- ?& N" _3 A& K6 G
    SPI 初始化代码如下:6 ^( }! R) L9 V) F! c

& }: c/ S5 @) m/ N( X% N" d' N! O9 ]    
- }( T2 }+ b& Q. \+ i) _    图5* z: x$ W/ \' }( m9 z  h
    SPI 的读写代码如下。
( O' _3 r/ n5 g: X0 Q1 e/ o  R
6 b8 x0 T1 r/ y; l8 o     $ ]# _4 p$ @; i  ]/ m
    图6
: H2 k! E% Y8 i    SPL06 的初始化代码如下。
8 M8 S  C$ l  b: V6 H, J4 M9 O& J. s% u( `" @" Q4 Q/ _* l
   
! r+ d, q7 s3 |+ V- a* O8 F! e    图7+ W' V, v. u# v" X' N+ J; V- C
    SPL06 的读写代码如下。: B9 @% b- ?+ h" s6 ~

4 ]3 {0 c6 Y. G3 {7 B5 x     / D: u& J/ p* }' |1 n- i
    图85 Y+ |: b) \1 t: X# y( ^. S5 p
    查看手册发现压力、温度的 24 位原始值在地址 0x00~0x05 上。
. v+ D7 y5 \: P& k0 G& r( d0 Q( O2 f5 j6 Y
   
& J) s7 \' N1 T! ~    图9" R% [) a. x. ^
    读取该寄存器数据,并发送到串口上。代码如下所示。
5 Y; m2 e, U7 [6 p
& D/ k' C  P- N5 s, F' [2 ^    
& a2 m; G. I& F2 q8 H; H1 p    图100 ^- t1 n! R, X: o% Z9 B8 Q
    这里注意要把串口的发送也配置好,这样才能把数据发送到电脑。串口 1 通过 USB 转串口模块接到电脑,保存、编译、下载代码,可以看到 USB 转串口模块在不断地打印 SPL06 的 3 个字节原始压力值数据以及 3 个字节的原始温度数据,数据如下图所示:
' ^  d: H; i! t/ ?! g) b. p' a" |" U" n. X
   8 R3 ~/ U; A& C- W* d, G
    图11
+ [! H: i7 l( d! W( P/ \! X0 n, V+ c( y7 K0 B
( u4 |6 \2 ?5 @9 \1 R8 _
更多完整学习资料和对应开源套件,请登陆官网:”疯壳“   1 q8 x/ f0 _  g& X" v5 Y
如需定制开发,请通过官网”疯壳“网页底部的”联系我们“进行联系
( L* L6 j6 [7 L4 E( l$ x! _: z, Z. |9 _: R
    文件下载请点击: 【7】SPI(气压计数据获取).pdf (1.04 MB, 下载次数: 2)
' p$ l; C6 O* Z1 p* M+ U! |. u! q0 m: t' u& n# m$ S5 Z

. S( s8 I! q, i# e; N% A8 x/ L4 d1 S2 ?: H$ E

0 n0 T$ Q- A, V3 \7 p) H. e6 @3 I1 v! k# t. {
/ ]1 f8 D) h' z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-25 21:16 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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