自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 GPIO和Pinctrl子系统的使用

在前面我们通过编写驱动来实现led的亮灭,首先从普通的字符设备驱动编写,接着使用平台总线模型进行编写,最后采用设备树进行编写驱动。使用设备树编写驱动时,设备树上记录着硬件信息,在实际开发中,可以使用GPIO和Pinctrl子系统代替查找寄存器,使用Pinctrl子系统设置IO复用关系,使用GPIO子系统设置引脚的输入、输出、电气特性。在驱动代码中:使用 GPIO 子系统的标准函数获得 GPIO、设置 GPIO 方向、读取/设置 GPIO 值。1.首先需要指定IO的Pinctrl属性,也就是状态,节点;

2024-07-22 19:53:48 215

原创 基于im6ull开发板的设备树驱动led亮灭

设备树是描述硬件信息的平台,主要是描述芯片外设的寄存器地址,可以用一张图来描述设备树:在Linux中主要是以dts文件体现的。该文件中记录着硬件信息,怎么样才能让内核知道硬件信息呢。首先通过内核编译dts文件,生成dtb文件,一个单板启动时, u-boot 先运行,它的作用是启动内核。u-boot 会把内核和设备树文件都读入内存,然后启动内核。在启动内核时会把设备树在内存中的地址告诉内核。

2024-07-18 14:49:56 956

原创 总线设备驱动模型

总线设备驱动模式的优势就是将驱动和硬件信息分开,遇到类似的修改device信息就行。内部驱动的编写方式还是与常规的字符驱动编写方式基本相似,使驱动具有更好的扩展性,但也有缺点,冗余代码太多,修改引脚时设备端的代码需要重新编译。感觉还是设备树方便。

2024-07-15 21:28:47 894 1

原创 Linux基本命令

1.pwd:打印当前路径2.cd:切换路径3.mkdir:创建新目录,,创建目录和子目录4.rmdir:移除目录,5.ls:列出目录内容,-a:所有文件,-l:详细信息6.cp:复制文件,-r:表示所有文件,-f:表示强制,7.rm:删除文件和目录,-r:表示所有文件,-f:表示强制,8.cat:打印文件内容9.touch:修改文件时间,文件不存在则创建空文件。

2024-02-25 21:12:13 376 1

原创 Freertos低功耗管理

在整个系统运行得过程中,其中大部分时间都是在执行空闲任务的,空闲任务之所以执行,因为在系统中的其他任务处于阻塞或者被挂起时才会执行,因此可以将空闲任务的执行时间转换成低功耗模式,在其他任务解除阻塞而准备运行的时候让MCU退出相应的低功耗模式。如何计算MCU进入低功耗模式的时间。从以上代码可以看出,首先判断进入低功耗模式的时长,当大于两个时钟节拍的时候,进入低功耗模式,进入之后在计算低功耗时长。

2024-01-08 17:44:50 397

原创 Freertos内存管理

相比于静态创建,动态创建是Freertos从自己管理管理得内存中进行分配,在删除任务得时候,又可以释放之前创建得内存堆,比静态创建任务灵活许多。heap_1:只允许申请内存,不允许释放内存(适用于 个别嵌入式系统,一旦创建好就不会删除的任务):允许申请和释放内存,并且可以合并相邻的内存块,减少内存碎片的产生(常用的内存管理算法)heap_2:允许申请释放内存,但不能合并相邻空闲的内存块(会产生大量的内存碎片)pvPortMalloc(pv):pv:所要申请的内存的大小,并返回内存的首地址。

2024-01-08 11:08:32 377

原创 Freertos列表基础知识

是freertos中一中常用的数据结构,在物理单元上是。的,并且是一种双向环形列表。

2023-11-28 16:32:06 56

原创 Freertos动态&静态&挂起&恢复创建任务

freertos创建任务

2023-11-25 17:09:56 79

原创 Freertos基础知识

rtos基础

2023-11-21 22:09:35 62

原创 stm32系统时钟及delay函数解析

stm32系统时钟

2023-11-21 16:23:59 1622

原创 SPI协议 & Flash

SPI是一种串行外围设备接口高速全双工同步的通信总线。同步 串行 全双工同步 串行 半双工MOSIMISOSCLCSSDASCL一主多从一主一从多主从片选引脚选择SDA上设备地址片选一般50MHz以下100kHz400kHz3.4MHz8位/16位8位MSB/LSBMSB广泛应用于MCU、FLASH、AD转换器和LCD之间。

2023-08-04 20:12:30 122 1

原创 ADC采集 && DMA转运

DMA,即直接存储器访问。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设辟一条直接传送数据的通路, 能使 CPU 的效率大为提高。STM32F103 内部有2 个 DMA 控制器(DMA2 仅存大容量产品中), DMA1 有 7 个通道。DMA2 有 5 个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个 DMA 请求的优先权。

2023-08-02 17:17:50 989

原创 DHT11温湿度传感器 & STM32f103zet6

DHT11 与单片机之间能采用简单的单总线进行通信,仅仅需要一个 I/O 口。传感器内部湿度和温度数据 40Bit 的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。DHT11与DS1B8B20的时序有相似之处,但相对来说简单许多。数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先发。DHT11 的数据格式为:8bit 湿度整数数据+8bit 湿度小数数据+8bit 温度整数数据+8bit 温度小数部分+8bit 校验和。其中校验和数据为前面四个字节相加。

2023-07-26 11:05:33 560 1

原创 DS18B20温度读取 & STM32F103ZET6

它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。单总线结构具有简洁且经济的特点,可使用户轻松地组建传感器网络,从而为测量系统的构建引入全新的概念,测试温度范围为-55~+125℃,精度为±0.5℃。DS18B20返回的16位二进制数代表此刻探测的温度值,其高五位代表正负。如果高五位全部为1,则代表返回的温度值为负值。如果高五位全部为0,则代表返回的温度值为正值。后面的11位数据代表温度的绝对值,将其转换为十进制数值之后,再乘以0.0625即可获得此时的温度值。

2023-07-26 10:12:09 398 1

原创 I2C & STM32F103zet6 & AT24C02

主机在发送字节之后,需要释放SDA,场景可以理解为主机发送完一个字节之后,从机是否有人接收到,如果接收到之后,主机在释放SDA后,从机立马将SDA拉下,在SCL高电平期间读取应答位。:SCL低电平期间,从机将数据放到SDA线上(高位先发),然后释放SCL,主机在SCL高电平期间读取数据,所以SCL高电平期间数据不允许有变化,依次循环8次,则发送一个字节。:主机在发送完一个一个字节之后,在下一个时钟接收一位数据,判断从机是否应答,0表示应答,1表示非应答(),在当前地址指针指示的地址下,读取从机数据(

2023-07-22 16:34:49 335

原创 C语言中const与define的区别

新手快速了解const与#define二者之间的区别

2023-02-19 20:18:58 173

原创 数组指针与指针数组的区别

C语言新手快速上手数组指针与指针数组

2023-01-13 10:50:13 121 1

原创 浅谈C语言中对数组名取地址

C语言对数组取地址解析

2023-01-11 22:40:31 1662 1

原创 C语言中sizeof与strlen的区别

sizeof()与strlen()区别,新手快速上手

2022-12-25 12:07:43 124 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除