嵌入式组件-----层次状态机
前段时间写了一篇文章描述FSM(有限状态机),但是在有些情况下业务比较复杂,就会使用到HFSM(层次状态机),使用层次状态机,将复杂的业务分解为几个大状态,每个大状态再维护自身内部的小状态,可以使代码更加条理,增加代码的可读性与可维护性1、层次状态机思想类似于FSM,层次状态机也具有这几个部分:状态、事件、转换、运行。状态(State):系统或程序可能处于的不同状态,例如"待机"、"运行"、"暂停
前段时间写了一篇文章描述FSM(有限状态机),但是在有些情况下业务比较复杂,就会使用到HFSM(层次状态机),使用层次状态机,将复杂的业务分解为几个大状态,每个大状态再维护自身内部的小状态,可以使代码更加条理,增加代码的可读性与可维护性1、层次状态机思想类似于FSM,层次状态机也具有这几个部分:状态、事件、转换、运行。状态(State):系统或程序可能处于的不同状态,例如"待机"、"运行"、"暂停
1. 前言在lvgl中经常需要显示大量图片,但是MCU的内部flash不足以保存大量的图片,因此需要将图片保存在外部flash上,通过SPI或者QSPI方式读取。适用于嵌入式的文件系统较多,例如fatfs,但是较为占用资源,并且在文件较多的情况下,读取文件需要查目录,导致速度慢,fatfs的增删改功能我们也用不上,因此想到写一个精简版的静态文件系统。2.实现过程lvgl静态文件系统就是将文件保存在
个人比较喜欢重低音音乐,但是好的重低音音响都比较贵,比如JBL战神战鼓系列,又或者迪瓦雷系列,可望而不可即。所以就想自己先做一个来试试水,听听感觉方案设计发声单元使用两个全频喇叭 + 一个重低音喇叭 + 低音振膜全频喇叭实在某宝上找的10W的全频小音箱,用小音箱刚好可以不做音腔分离了,看外形这个音箱可能用在智能电视上的,卖家标准功率是10W低音喇叭在拼夕夕找的四寸30w低音喇叭,这个价位其实可以考
1、LVGL单缓冲区刷屏流程任务启动之后,lvgl按需往屏幕上刷数据,阻塞等待刷屏完成,继续运行lvgl任务,重复此流程2、LVGL双缓冲区刷屏流程启动之后,lvgl按需往屏幕上刷数据,在触发SPI DMA发送后,前台继续处理LVGL任务,并且渲染在另一个缓冲区中,SPI传输则在后台发送,不占用CPU时间,等到后台的SPI传输完成,向上告知LVGL可以继续刷屏了,lvgl再将另一个缓冲区的数据推到
2024年暂时的目标忙碌的一年需要记录,不然没什么东西值得回头1、高质量的完成任务,学习中工作,工作中学习2、制作一个蓝牙音箱,根据自己的喜好增加低音已经完成 查看这里3、给弟弟做一个固定翼航模飞机材料购买完成 五一假期回家做2024.5.6更新:成功起飞,但是技术太差,摔了几十次后成功滞空30S(此时机头已经摔没了,下图为修复机头后的样子)4、读够8本书夹边沟记事定西孤儿院纪事海底两万里神秘岛重
熟悉了解本章博客需要你有较为入门的编程基础,包括但是不限于C语言、python1、前言最近在老五这里看到4.2寸的三色墨水屏只要7.5一张,于是下单了两个,到货后发现是全新设备,保护膜都在,拆开后发现是telink8359处理器,3个纽扣电池,这个价格还要什么自行车,但是暂时还不太想折腾telink,就先来玩玩墨水屏。刚好手里有上学时候买的电子墨水屏驱动板,长这个样子,型号为DESPI-C02。电
1、前言MCU系统中的低功耗功能非常重要,如果你的MCU系统供电方式是连接市电,降低功耗可以减少发热,延长使用寿命;如果你的设备是移动端设备,使用小型电池供电,那么低功耗的意义就更大了,更低的功耗可以延长使用时长,提高用户体验。2、硬件降低功耗的方式正确合理的配置IO: 一般的IO的内部或者外部都会有上下拉电阻,举个例子,假如某个IO口有个10KΩ的上拉电阻,把引脚拉到3.3V,如果IO口被设置
1.前言在某些情况下,我们的虚拟机可能会断网运行,碰巧此时在物理机下需要运行自动化程序,虚拟机也要同步运行,但是虚拟机断网了,也没办法使用SSH或者其他交互方式,那此时怎么办呢?2.在物理机上指定虚拟机运行指令2.1VMrun我们的VMware在安装时,也同步安装了一个叫做VMrun的工具,它可以方便的使用命令行控制虚拟机的开关机、文件拷贝、命令运行、状态显示等,我们首先找到VMrun所在的位置(
简介软件设计原则是指软件在架构设计或者在详细设计过程中所需要遵循的原则,现有的软件设计模式都是在不同场景下对软件设计原则的应用,良好的软件项目实践都会在设计及编码阶段思考或者遵循常见的设计原则来实现最终的设计目标。设计原则的最终目的是使软件产品能实现指定的设计目标,这些目标包含:正确性健壮性灵活性可复用性高效性可插入性七大软件设计原则是在软件发展至今被行业前沿的优秀从业者所总结,被行业内大多数所任
1、前言先写一个简单的测试程序并且运行:#include <stdio.h> #include <stdlib.h> #include <time.h> int array[1024][1024] = {0}; int main() { int begintime,endtime; printf("start\r\n");