田帅康学习笔记

vscode 自定义任务

vscode 自定义任务vscode是一款优秀的代码编辑器,并且内置了任务系统,意味着用户可以根据自身需求使用快捷键的方式运行自己的命令或者脚本,从而提升工作效率1.给任务绑定快捷键使用快捷键打开键盘快捷方式界面,默认快捷键为CTRL+K+S,在当前界面搜索任务,双击运行任务这个命令可以添加快捷键,我这里使用的是CTRL+'2.创建任务在代码根目录中创建.vscode文件夹,并且在该文件夹下新增t

- 阅读全文 -

数字加密的基本原理和典型应用场景

一、数字加密的概念1.1 加密概念数据加密技术是指一条消息通过加密密钥和加密函数转换成无意义的密文,接收者通过解密函数和解密密钥将密文还原成明文。这样,我们就可以保护数据不被非法窃取和读取。提高计算机安全水平的基础是掌握数据加密的本质,数据加密由明文(未加密报文)、密文(加密报文)、加解密设备或算法、加解密密钥四部分组成。加密方法有很多种,但主要有对称加密算法、非对称加密算法和不可逆加密算法。密钥

- 阅读全文 -

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再将另一个缓冲区的数据推到

- 阅读全文 -

最新文章

最近回复

  • 燕康小子: 请这位仁兄也发一份代码给我哈 我的邮箱 1915891329@q...
  • lionel: 你好,也在西安吗?想找你学习下esp32相关的功能开发,方便吗
  • cyqand: 大佬,为啥我使用这个代码做出来的录音正常电脑服务端可以收到,但是...
  • jimmy: 大哥,也发我一份语音对讲的demo源码 我的邮箱:1026647...
  • 树莓: 在port里面,将fs_seek绑定回调后,并且注册为存储设备,...
  • : 你好,这些接口如fs_seek在lvgl内部怎么调用呢?方便话想...
  • cc: 你好,可以把源码也发我一份吗,邮箱:1826683460@qq....
  • john_yike: 没有找到windows版本哦
  • oMMh: 现在是不是没有Windows版本了,在https://www.e...
  • lei: GitLab登不上去 能一份 915696525@qq.com

分类

标签

归档

其它