嵌入式轮子
文章平均质量分 92
子恒赵
以统治硅基生物,为人民服务为奋斗目标~
展开
-
一种通用串口命令解析器
在一个产品的开发过程中,往往涉及很多参数的配置、功能模式的切换、状态查询等等,一般这个时候会通过uart下发一些命令,去进行配置等。该博文实现了一种易于移植的字符串命令解析器,能解析以下两种格式的明文字符串带参数的比如> $ZZB RESET\r\n 重启> $ZZB SN PAR\r\n 修改产品SN号> $ZZB LOG GET\r\n 获取日志信息> $ZZB LOG ON/OFF\r\n 使能/关闭日志记录不带参数的直接是全字符串匹配比如。原创 2024-04-23 16:12:38 · 983 阅读 · 0 评论 -
一种通用hex协议解析器的简单实现
hex协议基本是私有定制的,但他们都具有一定的共性,比如一个例子如下帧头帧类型数据长度数据校验帧尾1 byte1 byten bytexor一般hex协议的基本数据流都类似这种,或是其变种,这些数据流可以通过UART、网口、蓝牙、2.4g、SPI等等等等进行传输,简单的,我们就串口而言,解析它的方式大致两种。原创 2024-03-21 16:32:41 · 1689 阅读 · 0 评论 -
一种flash双区备份机制的简单实现
读flash大致思路如下,先读出主区保存的数据和校验值,对数据进行CRC32校验并判断是否和保存的校验值一致,若一致,则数据可靠可以使用(并判断备份区数据是否可靠,不可靠就把主区数据再重写到备份区去),若不一致,读备份区数据和校验值,对备份区数据进行CRC32校验并判断是否和保存的校验值一致,若一致,则将备份区的数据重写到主区,并使用该备份数据,若不一致,则恢复出厂值。试想,我们在当配置数据时,flash正处于擦除阶段,这个时候掉电了,或者才写了一半,掉电了,或者受到电磁干扰,导致写入的数据出错等等等等。原创 2024-03-21 10:55:40 · 672 阅读 · 0 评论