就单片机而言,驱动外设芯片主要是三大协议,串口、IIC、SPI。
本人也驱动过大大小小的芯片不少,例如,语音芯片、温湿度芯片、光感、VOC、PM2.5等。
这些芯片有些是读值有些则是控制其输出。然而今天,我遇到另外一种情况,看看大家的经验是如何的。
我看到原子哥的ADXL345加速度传感器。一块传感器乍一看没什么,无非就是读出X、Y、Z的值。
可是原子哥的代码里面除了读值还有处理,比如取10次去平均值。
这里我想问一下,基于什么情况下面需要做数据的处理,或者说需要写一些算法。
(一句话概括:读出的原始数据不能直接使用,需要做一些处理再输出)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
算法的使用分为三种:
一、补偿性算法。 这种算法主要针对那种无规律可循的数据,如三轴、气压等。这类数据由于受到地球经纬度,使用场景的不同,数据多多少少都会有所不同,可是这类数据的补偿值又没有规律可循,生产厂家无法将这种补偿集成到芯片中,然而生产厂家又为了提高芯片的通用性,所以厂家提供了一个数据算法,开发者得根据这个算法自己调试得到符合自己补偿数据。
二、提高通用性算法。
这类算法也主要是针对用户的使用场合而提供的算法,就好比是SPI通讯类的芯片一样,厂家只提供SPI数据的读写,具体这些数据用户想用它干啥,厂家就不管这了。
三、数据处理算法。
这类算法比较好理解,就像图像、音频、视频等数据处理的算法。
LZ说的是数据如何处理的问题,
主要看数据的物理性质,
主观性比较强,方法也因人、因事而异。
比如超声波,20ms获取一次超声波测距得距离,就需要滤波
一周热门 更多>