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

STM32-遥感数据处理

[复制链接]
STMCU小助手 发布时间:2022-9-7 18:36
一. 简介
在上篇文章中,以及知道如何采集遥感数据了,可是采集到的数据是0-4096范围内的,实际上,下边界不为0,上边界也不为4096。为了方便后续的处理,本文将采集到的遥感数据归一到0-100范围内。

二. 遥感数据校准
这个部分是必要的,可以确定真实情况下上下边界的数据。其具体做法为,连续采集一些边界数据,求和,取平均就可以了。具体做法如下。当采集到的数据靠近我们认为的边界时,就认为是有效数据,否则丢弃,其他四个边界的做法也是如此。

  1. /*XL方向校准*/
  2. void Rocker1CalibrationXL(void)
  3. {
  4.     uint8_t i;
  5.     uint32_t valueSum = 0;
  6.     for(i = 0 ;i < 400; )
  7.     {
  8.         uint16_t value = getX1Value();
  9.         if(value > 0xf600)
  10.         {
  11.             valueSum += value;
  12.             i++;
  13.         }
  14.     }
  15.     XOffSetL = valueSum / 400;
  16. }
复制代码

三. 数据归一化
这部分也是关键的一步。其具体做法分为如下几个步骤:

1.获取原始数据
2.计算原始数据到对应两边界直接的距离(也就是相减)
3.将计算得到的结果扩大100倍,然后除以两边界的差值
4.左 边加(100-右边) 除以二,得到最终结果
具体代码实现如下
  1. XValue =  getX1Value();  //获取X方向遥感数值
  2. if(XValue > XOffSetL)
  3.       XtempL = 0;  /*小于左边界,直接复制为0*/
  4.   else
  5.       XtempL = XOffSetL - XValue ;
  6. if(XValue < XOffSetR)
  7.       XtempR = 0;  /*大于右边界,直接复制为0*/
  8.   else
  9.       XtempR = XValue - XOffSetR;
  10. uint32_t XtL = XtempL * 100;
  11. uint32_t XtR = XtempR * 100;
  12. XtL = XtL / (XOffSetL - XOffSetR);
  13. XtR = XtR / (XOffSetL - XOffSetR);
  14. X = (XtL + (100 - XtR)) / 2;  /*结果为遥感到左边界的距离,0 - 100*/
复制代码

————————————————
版权声明:ValentineHP


收藏 评论0 发布时间:2022-9-7 18:36

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版