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

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

[复制链接]

该用户从未签到

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

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-22 07:13 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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