单片机数据处理
入门->放弃
这个作者很懒,什么都没留下…
展开
-
抽象和封装
5. 还有种降低内存的方法, 就是使用动态内存分配(内存池, 内存堆), 可以将一些占用大内存的, 而使用时间短的内存, 用内存分配来解决, 这样可以降低内存的消耗.但是在裸机项目中, 消耗大内存的机会很小, 至少我以前遇到的都是小内存, 都只需要几个字节就行, 一切皆可控.而在物联网产品中, 需要的都是大内存来接收数据, 因此内存动态分配就是最优解(如果反复需要申请和分配的, 我觉得还是用内存池来做比较合理, 而内存堆用来那种分配一次就不释放的场景, 可以最大程度的降低内存碎片)原创 2024-01-23 22:37:23 · 357 阅读 · 0 评论 -
消息订阅(想法)
在mqtt中, 可以通过订阅主题, 来接收服务器的消息通知. 那是不是我们在单片机中也可以模拟一个呢?我们可以用这个来获取我们感兴趣的事件.这里是以按键消息来做为订阅主题, 为了偷懒, 我没有使用链表, 使用链表会更加灵活, 并且如果是按键有一个消息主题就可以了, 没必要整这么多.sub()这个不定参函数, 可以让订阅消息更灵活, 可以一次订阅多个消息(最近开发的mqtt就可以一个主题将服务器所有主题订阅)这里应该再次优化, 将sub()函数抽出来, 变成一个公共函数, 其他消息类型也可以订阅.原创 2024-01-23 21:59:13 · 395 阅读 · 0 评论 -
队列实现(基于内存池思想)
这里实际就是一个队列的实现, 当数据一个一个入队, 当入队的数据满了一个预先申请的块, 则会重新申请相同大小的一块, 继续存储数据. 出队的时候, 一个数据一个数据的出, 当出完一个存储块, 则释放这段内存, 如果出到最后一块, 是不会把这块删除的, 同时如果队列为空了, 则链表指针会恢复到当前内存块的起始位置.我想到的方法是,通过增加缓存,往缓存写入数据,但是我们必须清楚,大数据时缓存必定会满,这个时候肯定需要涉及动态内存申请(内存池,内存堆,可能内存池会对内存使用会造成一定的浪费,但是速度会很快)。原创 2023-11-04 23:54:03 · 196 阅读 · 0 评论 -
内存池设计实现
内存池初始化:初始时一个不定长参数函数, 初始化的时候注意, init_pool(6, 200, 2, 300, 2, 400, 2);第一个参数是后面不定长参数的个数, 第二个参数是分配一个200字节大小的块, 第三个参数是分配200字节块的个数, 依次类推, 但是也要注意不用分配太大,.注意这些都是没在实际项目中使用的, 还没接受过项目的考验,原创 2023-11-04 23:37:45 · 196 阅读 · 0 评论 -
事件驱动框架
在学习开发nrf52832的蓝牙的时候,他的工程中全是底层向上层抛出事件,然后你需要根据他的事件去处理一些事情,也就意味着我们需要在他的事件里面调用自己写的函数。这样就能很好的解决发布订阅模式以上两个弊端。这种事件驱动框架我把它叫做显式事件处理,而发布订阅是隐式事件处理。为了使程序解耦和,去学习了面向对象的设计模式,其中发布订阅模式就是一个非常好的框架。2.当一个订阅者需要多种事件完成一件事情时,意味着需要写多个订阅回掉函数。这意味着别人看你的程序会更加的吃力。1.需要额外的空间去存储订阅者的回掉函数。原创 2023-05-24 08:44:10 · 120 阅读 · 0 评论 -
关于数据读写需要注意的问题
接到公司的旧代码,生产的版本总有一些不良品,仔细查看他的代码,发现在对eeprom的操作的时候,简直了:就是直接写一遍eeprom。问题:1. eeprom只要执行写,就直接写入。2. eeprom一直在一个位置写,没有考虑写坏的问题。3. IIC和eeprom通信,他只管数据发到IIC总线上了,并不会去管eeprom是否写入成功了。4. 读取没有校验解决方法:问题1: eeprom写入的时候,应该先读出数据,然后判断是否和要写入的值相等,相等不 写,否则写入。原创 2022-12-19 14:39:27 · 800 阅读 · 0 评论 -
串口接受固定格式的数据
其中头,和两个尾巴是固定的,cmd是区别不同的命令,data是数据域(数据长度是已知的)开发时需要接受一串如下格式的数据。原创 2022-11-23 14:56:19 · 423 阅读 · 0 评论 -
嵌入式驱动分层
嵌入式分层原创 2022-11-18 09:36:14 · 395 阅读 · 0 评论 -
单片机代码分层
上班摸鱼,打瞌睡,敲代码原创 2022-11-03 09:21:59 · 1181 阅读 · 0 评论 -
通过串口发送数据让单片机执行不同的动作
识别串口命令原创 2022-10-31 10:04:10 · 764 阅读 · 0 评论 -
GPIO设置高低电平
IO操作原创 2022-10-12 13:38:40 · 2098 阅读 · 0 评论 -
利用数学函数实现呼吸灯
流觞曲水原创 2022-08-22 11:26:17 · 403 阅读 · 0 评论 -
调试信息打印
写代码从抄代码开始原创 2022-08-22 09:33:33 · 153 阅读 · 0 评论 -
基于数组循环队列实现可拓展多条队列的处理
道友请留步,在下看道友似乎另有想法,不妨说出来我等一起探讨一番。原创 2022-08-20 15:54:25 · 254 阅读 · 0 评论 -
多个LED处理方法
道友请留步,在下看道友似乎另有想法,不妨说出来我等一起探讨一番。原创 2022-08-22 09:00:09 · 60 阅读 · 0 评论 -
多个按键处理方法
道友请留步,在下看道友似乎另有想法,不妨说出来我等一起探讨一番。原创 2022-08-20 14:52:38 · 497 阅读 · 0 评论