- 博客(10)
- 收藏
- 关注
原创 ESP-IDF 使用ESP32制作音乐播放器(五) ---------- 同步显示歌词
使用 ESP32 制作音乐播放器,同步显示歌词,使用到 FreeRTOS 定时器。
2025-03-16 10:22:36
1021
原创 ESP-IDF 使用ESP32制作音乐播放器(四)--------- LVGL显示歌名、播放状态图标
继续使用ESP32制作音乐播放器,本节连接显示屏,使用LVGL, 同步显示歌名与播放状态图标。
2025-03-13 18:20:02
977
原创 ESP-IDF 使用ESP32制作音乐播放器(三) ---------- 列表循环,歌曲切换
这一章,为音乐播放器添加以下功能:1)列表循环2)手动切换歌曲
2025-03-11 23:09:31
433
原创 ESP-IDF 使用ESP32制作音乐播放器(二) ---------- 暂停播放、音量调节
为基于ESP32的音乐播放器,添加button组件,控制音乐的暂停与播放。修改pcm音频数据以调节音量大小
2025-02-28 17:11:06
1032
原创 ESP-IDF 使用ESP32制作音乐播放器(一)---------- 播放 SD 卡中的 wav 音乐文件
记录使用ESP-IDF开发一个音乐播放器,读取SD卡中的WAV音乐文件,进行解析,通过I2S进行播放。
2025-02-26 22:54:52
1541
原创 如何在项目中使用开源库——从源码编译出动态库(以mosquitto为例)
将 mosquitto 的 include 文件夹中的四个文件,以及自己生成的 libmosquitto.so.1 加入自己的项目中。所以,在运行可执行文件前,需要在可执行文件的同级目录下新建 lib 文件夹,将动态库 libmosquitto.so.1 放进去。文档,发现编译步骤如下(本文所用环境为 linux 环境,所以只需要 make)。此时,可能会因为缺少某些东西,导致编译失败,按照提示进行安装即可。项目中想要使用某个开源库,需要先自行将其从源码编译出来。想在自己的项目中使用 mosquitto?
2024-03-07 12:03:55
973
原创 构造语义学——初始化列表
这表示,在 user code 前,编译器调用了 Member 类的默认构造函数初始化了成员类对象 _memObj,也用随机值初始化了 int 型变量 _num。显然,在构造函数中使用赋值语句再赋值,是一种浪费,浪费了初始化列表进行的初始化。所以,使用初始化列表进行初始化的效率,要高于在构造函数中使用赋值语句。实际上,构造函数体内的语句只能算是对成员变量进行赋值,初始化列表才是真的对成员变量进行初始化。tip: 初始化列表中的初始化顺序,仍按照类中的声明顺序,并不按照初始化列表中的顺序。
2024-03-05 20:26:58
337
原创 构造语义学——程序转化语义学
编译器会在拷贝构造函数中,用额外参数 _result 来替换有名字的返回变量(Named Return Value),本例中即为 temp。因此,这三种情况,会迫使编译器对用户代码进行部分转化,在适当的位置插入对拷贝构造函数的调用。显然,编译器也考虑到了这点。所以有时候,编译器会默默地自己进行 NRV 优化。拷贝构造函数,就是用一个已存在的对象去初始化另一个对象。那么,以下三种情况,显然需要用到拷贝构造函数。如果能去掉这些拷贝构造函数,那该有多好。
2024-03-05 19:47:37
581
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人