![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式常用小算法(c语言)
在云巅
学如逆水行舟,不进则退!
展开
-
数据缓存-fifo算法(c语言)
在通讯场景下,两端的数据处理能力不同,或者受传输单次数据传输量的的限制,很多时候我们都需要将数据进行缓存,然后在进行处理,fifo就是一种很好的数据缓存模型,下面我写了一个实例,可直接移植使用typedef unsigned char uint8;typedef unsigned short uint16;#define MAX_FIFO_BUFFER_LEN 21typedef struct _fifo_t{ uint8 *buff; uint16 fifo_len; uint16 d原创 2020-10-08 18:20:30 · 4169 阅读 · 5 评论 -
电池电压值转换为百分比
在开发嵌入式产品中,一般都会用到电池,同时也就可能需要指示电池的电量需求,有些品台自带的百分比算法比较粗糙,满电电压减去关机电压除以100%,这种计算不符合实际电池放电曲线,往往30%多开始就飞速往下掉了。这里举例用一个简单的算法,用积分方式,把电池放电曲线,按同等时间分成10等分,每等分看似一个固定斜率,参考代码如下:#define ARRAY_DIM(a) (sizeof(a) / sizeof((a)[0]))const static int Battery_Level_Percent_Ta.原创 2020-10-08 18:08:52 · 9512 阅读 · 8 评论 -
crc和校验算法
本算法主要用于通讯数据传输中的数据校验,比如在基于串口的用户协议中,保证通讯的健壮性,就需要加入简单的校验,防止错报或者部分数据丢失。主要原理为发送数据时,在原始数据的末尾加入一个直接,用于存储原始数据的求和的值,当和值大于255时,对255取余。数据接收时,计算前面数据的和值,对比末尾位数据/************************************************************************************************函数名.原创 2020-10-08 18:00:16 · 728 阅读 · 0 评论