logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C语言实现Hash Map(1):Map基础知识入门

Map是一种关联容器,它存储键值对(),通过键(key)来快速查找对应的值(value插入(Insert):将一个键值对插入Map。查找(Find):根据键查找对应的值。删除(Delete):从Map中删除一个键值对。在本篇博客中,介绍了Map的基本概念和两种主要实现方式:Hash Map和红黑树Map。我们还简要介绍了C++标准库中的std::map和。在下一篇博客中,我将深入探讨如何在C语言中

文章图片
#哈希算法#c语言#散列表
LVGL源码分析(1):lv_ll链表的实现

实际上LVGL中链表的实现和我们预期的链表数据结构差不多,唯一的不同是这里允许自定义每个节点的大小,然后直接在节点中保存数据,而不是保存指针,这也是一种思路吧。当然,链表的操作不止在尾部插入元素,在lv_ll.c文件中还有获取链表长度、删除节点等函数,如果全部都分析一遍,篇幅就太长了,代码也很简单,也没有多大的意义。所以这篇文章的目的就是了解一下LVGL中链表的数据结构,然后以往尾部插入元素为例加

文章图片
#ui
LVGL学习(1):中文字体的转换和汉字显示

在使用LVGL的过程中,我们难免需要显示汉字,所以这篇文章就来介绍一下如何转换中文汉字并成功显示到LVGL中。

文章图片
#ui
LVGL学习(2):图片的转换和显示

我们在设计UI的过程中可能需要显示一些图片,本篇文章将介绍如何转换并显示一个固定的图片到lv_img中。

文章图片
#ui
LVGL学习(5):物理按键切换焦点之焦点保存和恢复

本文实现了页面中焦点的保存和恢复,了解了LVGL中对于对象及焦点的保存。而在我写博客的过程中,又想到一个方案:在每一个界面创建时都创建一个group,并设置为默认组,然后在删除界面时删除这个group。最后我们需要在每次创建或切换界面的同时,调用来修改输入设备所对应的group。这种方式似乎比我上面实现的方式要更简洁高效。所以啊,办法都是想出来的,遇到了问题还是可以全方位地思考一下所有可能的解决方

#ui
ARM基础(6):内存屏障指令之DMB、DSB和ISB详解

本文详细说明了DMB、DSB和ISB三个指令的含义和使用时机。但大多数简单处理器不会对内存传输进行重新排序,因此,体系结构的需求和处理器的实现需求是不同的。例如,大多数应用程序可以在现有的Cortex-M处理器上正确运行,而无需使用任何内存屏障指令。

文章图片
#arm开发
USB学习(3):USB描述符和USB类设备

它描述了高速USB设备的信息,如果设备以另一速度运行,该描述符将发生更改,这在支持两种速度配置的设备中是必需的。同样,如果在设备以高速运行时请求此描述符,描述符读取将告诉主机有关全速配置的信息。在上一节的USB描述符部分,USB设备类的定义在:设备描述符的第四个字节和接口描述符的第六个字节。接口描述符描述了配置中的特定接口,此描述符中确定了接口的端点数量,声明了设备的USB类,供主机加载适合适驱动

文章图片
#arm开发
SD/SDIO(2):SDIO协议介绍和初始化流程

1、SDIO卡类型本规范定义了两种类型的SDIO卡。(1)全速支持SPI,1位SD和4位SD传输模式,时钟范围为0-25MHz,数据传输速率超过100Mb/s(2)低速该卡仅有SPI和1位SD传输模式,4位支持是可选的。低速SDIO卡应支持0-400 KHz的时钟范围。低速卡的预期用途是在使用较少引脚的情况下支持低速I/O功能,如调制解调器,条形码扫描器,GPS接收器等。2、SDIO卡模式SPI模

文章图片
#arm开发
嵌入式硬件设计实例:基于STM32的流水灯原理图和PCB设计

本篇文章简单地介绍了一下嵌入式单片机的一个简单的最小系统的设计,其中涉及的知识还是很多的,如果做更复杂的PCB的话,如高频、强弱电、EMC,还有电容电阻的参数,阻值大小,容值大小等方面都需要有一些考虑。所以我是不赞成网上说的:嵌入式工程师软硬件都要会,要学很多东西。实际上,对于嵌入式软件工程师来说,硬件方面,只需要会示波器,万用表,看得懂简单的原理图就够了。具体我上面所说的这些细节,仅仅一个电容电

文章图片
#嵌入式硬件#stm32#单片机
USB学习(2):USB端点和传输协议(数据包、事物)详解

接着上一篇文章,继续介绍一下USB的端点、传输协议(数据包和事物)的知识

文章图片
#arm开发
    共 22 条
  • 1
  • 2
  • 3
  • 请选择