![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
文章平均质量分 92
初出江湖的小码农
这个作者很懒,什么都没留下…
展开
-
电池管理系统之神奇的BMS(二)
电量(SOC)算法除了参数的监控与保护之外,作为BMS系统,其中最重要的功能还有一项,那便是SOC的计算。 SOC,全称是State of Charge,系统荷电状态,也叫剩余电量,代表的是电池使用一段时间或长期搁置不用后的剩余容量与其完全充电状态的容量的比值,常用百分数表示。 其取值范围为0~100,当SOC=0时表示电池放电完全,当SOC=100时表示电池完全充满。 那么SOC有什么意义呢? 任何一个产品,对于一般的终端用户而言,如果对其直接提供电压、电流之类的原创 2021-02-07 10:14:41 · 4263 阅读 · 12 评论 -
电池管理系统之神奇的BMS(一)
什么是BMS?首先必须弄懂一个定义,什么是BMS? BMS其实就是BATTERY MANAGEMENT SYSTEM的缩写,中文名字叫电池管理系统,顾名思义,是专门用来进行锂电池运行管理的模块,对象是锂电池。 对于一般的终端用户而言,锂电池保护板其实并不存在,或者说,他们并不知道正在自己使用的产品中还有这么一个东西。比如说电动车,100%的用户都知道电动车上面有电池,因为电池提供了能源,但最多有1%的用户知道还有锂电池保护板这个东西的存在。 BMS的存在感之所以如此低,完全是因为它原创 2021-02-07 09:34:28 · 5268 阅读 · 0 评论 -
最全面的C结构体的初始化和赋值
1.结构体的初始化结构体是常用的自定义构造类型,是一种很常见的数据打包方法。结构体对象的初始化有多种方式,分为指定初始化、顺序初始化、构造函数初始化。假如有如下结构体。struct A{ int b; int c;}(1)指定初始化(Designated Initializer)实现上有两种方式,一种是通过点号加赋值符号实现,即“.fieldname=value”,另外一种是通过冒号实现,即“fieldname:value”,其中fieldname为指定的结构体成员名称。前一种是C99标准引原创 2020-11-05 11:27:31 · 3121 阅读 · 0 评论 -
结构体的高端用法——按位存储
结构体平时我们编程的时候结构体的使用是非常多的,今天就介绍一种结构体的高端且特别实用的用法,按位存储。一般结构体:struct xxx { 成员 1 类型 成员 1 ; 成员 2 类型 成员 2 ; 成员 3 类型 成员 3 ; }; 我们知道结构体是会以对其的方式来存储的,那么这三个成员所占的存储空间就以最大类型空间乘3来计算,这样的话有时就会很浪费地址空间,如果三个成员类型都一致的情况下,原创 2020-11-05 11:22:09 · 2425 阅读 · 0 评论 -
c语言中static和const的作用
static和const的作用是什么无论在面试还是在平时的考试,这个问题出现的频率都是非常高的,但是网上有些解释太过详细,接下来我将给大家总结性的说一下这两个关键字的具体作用。static的作用1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。这句话的意思就是在 static 修饰局部变量的时候就算函数结束,局部变量依然存在且维持其值不变,提升了局部变量的生存周期和全局变量一样长。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模原创 2020-07-16 12:14:51 · 1164 阅读 · 0 评论