你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32-遥感数据处理

[复制链接]
STMCU小助手 发布时间:2022-9-7 18:36
一. 简介
) ~. W' ]2 j' U$ `0 G5 Z2 r在上篇文章中,以及知道如何采集遥感数据了,可是采集到的数据是0-4096范围内的,实际上,下边界不为0,上边界也不为4096。为了方便后续的处理,本文将采集到的遥感数据归一到0-100范围内。
) K8 ~% h8 F" a# A
4 J  `5 h# ^* ^" R. ?; M6 H二. 遥感数据校准* z# v5 l8 t# J# C/ T6 g
这个部分是必要的,可以确定真实情况下上下边界的数据。其具体做法为,连续采集一些边界数据,求和,取平均就可以了。具体做法如下。当采集到的数据靠近我们认为的边界时,就认为是有效数据,否则丢弃,其他四个边界的做法也是如此。. J+ Z/ F- ?5 l6 z  E5 b
2 V3 t2 J& R9 z" s9 H
  1. /*XL方向校准*/
    $ ]8 j5 f9 y7 n3 g! _- x2 v, a6 I; F
  2. void Rocker1CalibrationXL(void). L. m" f5 b& s# {
  3. {" [3 L. J; W! o
  4.     uint8_t i;! Q, T4 t! Q+ `4 Z* q4 T
  5.     uint32_t valueSum = 0;8 j8 [$ F9 o4 J2 J; s
  6.     for(i = 0 ;i < 400; )
    5 N3 Y9 h: E2 ?7 n; U* n0 h# h* Q
  7.     {
    / r3 O1 H6 ^5 `9 d3 r( d
  8.         uint16_t value = getX1Value();2 a  h- ]. p# J& b  D/ z) h# m
  9.         if(value > 0xf600)
    7 W, Y" v! e% n0 U
  10.         {1 p+ I7 Z$ n/ `) X0 `
  11.             valueSum += value;
    : e8 G, _0 Z, b4 ?" N* e
  12.             i++;7 r7 b  H9 E0 {* h
  13.         }( z* u' W6 Q! f4 z0 S& X6 k
  14.     }
    * f$ X% r4 p* U: @
  15.     XOffSetL = valueSum / 400;
    ; [, @7 c6 ~, a9 ]! P2 X9 D
  16. }
复制代码
6 b! ?2 G, ?3 l8 F/ V
三. 数据归一化
6 r' I  e" o2 t- P- c/ R5 E$ z这部分也是关键的一步。其具体做法分为如下几个步骤:
6 i# d5 y3 H6 Y" W( G" `
/ c2 j' c5 B, V4 c9 Y( R1.获取原始数据
; A) d+ H% t6 M3 h( ?2.计算原始数据到对应两边界直接的距离(也就是相减)
. x) Z: x4 e5 Q. C3.将计算得到的结果扩大100倍,然后除以两边界的差值
+ N$ q) o- u" c8 ~  f% C3 j5 k4.左 边加(100-右边) 除以二,得到最终结果
9 R; \9 ^5 A% }/ v, u" Y3 v: H具体代码实现如下0 u$ D; [8 X  |6 x& C
  1. XValue =  getX1Value();  //获取X方向遥感数值
    $ T! W( O* h# d( e1 H1 n' ?1 o
  2. if(XValue > XOffSetL)6 g- S2 y6 Y/ F- C; R
  3.       XtempL = 0;  /*小于左边界,直接复制为0*/
    8 L7 w% {6 \* V0 _$ Z9 Z9 Q5 {2 X4 n
  4.   else
    # `) R' N& _2 E& Q- x) v: E6 p
  5.       XtempL = XOffSetL - XValue ;
    - V1 Q7 E" Z( K1 q& T- Y
  6. if(XValue < XOffSetR)
    . q( g# i6 Q, k
  7.       XtempR = 0;  /*大于右边界,直接复制为0*/
    9 l6 o' W/ N% ]# j5 H
  8.   else
    , \# A, b0 P  |5 L
  9.       XtempR = XValue - XOffSetR;
    8 I7 ^# D6 C9 X- v( G- {* e3 u, u: T. W
  10. uint32_t XtL = XtempL * 100;/ d- k  J* f6 [1 g% r
  11. uint32_t XtR = XtempR * 100;) k4 J7 q" D* F1 W9 [: N+ H
  12. XtL = XtL / (XOffSetL - XOffSetR);
    ; A2 i  B. T6 m* j' ]
  13. XtR = XtR / (XOffSetL - XOffSetR);0 ]$ M) ], l6 u# E6 [1 J; s8 `
  14. X = (XtL + (100 - XtR)) / 2;  /*结果为遥感到左边界的距离,0 - 100*/
复制代码
9 L6 T# |+ n9 u
————————————————4 n7 |2 H+ e' ?* j# N
版权声明:ValentineHP" e  f( Y5 `, C3 A

3 ?. s! K4 X/ W& G' r5 f5 M5 R, R1 _) _, M: }- O* S+ }: L
赞 收藏 评论0 发布时间:2022-9-7 18:36

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版