田帅康学习笔记

C语言中常见的内存踩踏

程序员在C编码时需要尽量考虑所有的异常情况,否则解决问题需要花费制造问题的数倍1、数组操作越界,造成相邻内存中的数据踩踏在下面示例代码中,arr_a[i] = 10 越界访问造成了arr_b中的数据被修改uint8_t arr_a[5] = {0,1,2,3,4} ; uint8_t arr_b[5] = {4,3,2,1,0} ; void log_arr(uint8_t *arr , uin

- 阅读全文 -

低成本使用MCU播放提示音方式

1、音频产生原理物体的振动产生声音,下图是一段音频波形,可以从这张图片中了解一下声音的关键参数采样率:一秒钟有多少个采样点,常见的有8K,16K、32K、44.1K等,可以说采样率越高,音质越高采样位深:一个采样点的音频深度,常见的有8bit或者16bit,震动引起声音,同样是3.3V的电平变化,8bit位深的变化范围是0~255,16bit位深的变化范围是0~65535,位深越高,能表达的音频变

- 阅读全文 -

STM32G0系列的bootloader启动问题

问题描述:最近在使用STM32G0的bootloader下载时,发现拉高boot0后,空片只能烧录一次,然后无论如何拉boot0,再也无法线刷固件了,通过查看文档解决了此问题1、STM32G0系列与旧款STM32启动的不同之处旧款STM32 boot启动方式:STM32G0 boot启动方式:不同之处:简单来说,G0系列多了个选项标志位,也就是nBOOT_SEL,如果nBOOT_SEL为0,则外部

- 阅读全文 -

lvgl中存在的内存泄漏问题

在lvgl中,当两个页面之间互相切换时,先将第一个页面的控件全部删除,在创建新页面的控件,但是有时执行后会发现会出现内存泄漏:两个页面来回切换,内存占用不断提高,直到卡死。1、情况复现使用最简单的方式复现问题,模拟器新建两个页面,每个页面在创建时新建一个style对控件进行修饰,不断切换页面后,内存占用会不断升高现象截图:测试代码:static lv_style_t style ; static

- 阅读全文 -

嵌入式组件-----层次状态机

前段时间写了一篇文章描述FSM(有限状态机),但是在有些情况下业务比较复杂,就会使用到HFSM(层次状态机),使用层次状态机,将复杂的业务分解为几个大状态,每个大状态再维护自身内部的小状态,可以使代码更加条理,增加代码的可读性与可维护性1、层次状态机思想类似于FSM,层次状态机也具有这几个部分:状态、事件、转换、运行。状态(State):系统或程序可能处于的不同状态,例如"待机"、"运行"、"暂停

- 阅读全文 -

lvgl静态文件系统

1. 前言在lvgl中经常需要显示大量图片,但是MCU的内部flash不足以保存大量的图片,因此需要将图片保存在外部flash上,通过SPI或者QSPI方式读取。适用于嵌入式的文件系统较多,例如fatfs,但是较为占用资源,并且在文件较多的情况下,读取文件需要查目录,导致速度慢,fatfs的增删改功能我们也用不上,因此想到写一个精简版的静态文件系统。2.实现过程lvgl静态文件系统就是将文件保存在

- 阅读全文 -

制作一个2.1声道无线蓝牙音箱

个人比较喜欢重低音音乐,但是好的重低音音响都比较贵,比如JBL战神战鼓系列,又或者迪瓦雷系列,可望而不可即。所以就想自己先做一个来试试水,听听感觉方案设计发声单元使用两个全频喇叭 + 一个重低音喇叭 + 低音振膜全频喇叭实在某宝上找的10W的全频小音箱,用小音箱刚好可以不做音腔分离了,看外形这个音箱可能用在智能电视上的,卖家标准功率是10W低音喇叭在拼夕夕找的四寸30w低音喇叭,这个价位其实可以考

- 阅读全文 -

LVGL双缓冲处理流程

1、LVGL单缓冲区刷屏流程任务启动之后,lvgl按需往屏幕上刷数据,阻塞等待刷屏完成,继续运行lvgl任务,重复此流程2、LVGL双缓冲区刷屏流程启动之后,lvgl按需往屏幕上刷数据,在触发SPI DMA发送后,前台继续处理LVGL任务,并且渲染在另一个缓冲区中,SPI传输则在后台发送,不占用CPU时间,等到后台的SPI传输完成,向上告知LVGL可以继续刷屏了,lvgl再将另一个缓冲区的数据推到

- 阅读全文 -

给2024年制定一些目标

2024年暂时的目标忙碌的一年需要记录,不然没什么东西值得回头1、高质量的完成任务,学习中工作,工作中学习2、制作一个蓝牙音箱,根据自己的喜好增加低音已经完成 查看这里3、给弟弟做一个固定翼航模飞机材料购买完成 五一假期回家做2024.5.6更新:成功起飞,但是技术太差,摔了几十次后成功滞空30S(此时机头已经摔没了,下图为修复机头后的样子)4、读够8本书夹边沟记事定西孤儿院纪事海底两万里神秘岛重

- 阅读全文 -

【捡垃圾】使用4.2寸三色墨水屏做一个任务待办清单

熟悉了解本章博客需要你有较为入门的编程基础,包括但是不限于C语言、python1、前言最近在老五这里看到4.2寸的三色墨水屏只要7.5一张,于是下单了两个,到货后发现是全新设备,保护膜都在,拆开后发现是telink8359处理器,3个纽扣电池,这个价格还要什么自行车,但是暂时还不太想折腾telink,就先来玩玩墨水屏。刚好手里有上学时候买的电子墨水屏驱动板,长这个样子,型号为DESPI-C02。电

- 阅读全文 -

最新文章

最近回复

  • 树莓: 这个音频模块默认带功率放大器的,你可以使用不带功放的音频模块,当...
  • zzy: 大佬,可以把喇叭换成耳机吗,如果可以应该如何实现呢
  • Mo: 你好 下载了那个Git的代码 但是 编译源码有错 请问大佬 你出...
  • 树莓: 需要是ESP32 ,其他的S系列与C系列都不可以
  • ischen: 你好,希望能有一个adf版本
  • LINING: 谢谢大佬制作了这么有趣的一个项目 请问这个项目对ESP32主控...
  • John: 用AI处理好了. 看起来 `esp_now_register_r...
  • John: @树莓 我用你的参考程序,编译时出现这个问题:Compilati...
  • kscn: 这个代码运行的平台是什么啊
  • kscn: 大佬你好,可以发一份源码吗,我的邮箱:1684173385@qq...

分类

标签

归档

其它