自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 树莓派基于python的GPIO操作:输入输出,中断,串口,PWM基本操作

先了解一下树莓派的GPIO分布,可以通过输入gpio readall获取GPIO的分布情况。 出现Oops - unable to determine board type... model: 17的报错可能是wiringPi版本问题,输入下面命令升级wiringPi版本即可cd /tmpwget https://project-downloads.drogon.net/wiringpi-latest.debsudo dpkg -i wiringpi-...

2021-09-18 20:56:40 11189 6

原创 DDR学习--分类、概念(一)

(双倍数据率同步动态随机存取存储器)是一个双边沿采样、分时多通道、电容存储、可以读写的存储器。在内存中,其中每一个黑色的内存颗粒叫一个 Chip。所谓 Rank 指的是属于同一个组的 Chip 的总和。这些 Chip 并行工作,共同组成组成一个 64 bit 的数据,供 CPU 来同时读取。CPU 的内存控制器能够对同一个 rank 的 chip 进行读写操作。通常一个通道(channel)能够同时读写 64bit 的数据。内存字符串标识中的 2 R 表示该内存有 2 个 Rank。

2024-07-22 13:25:06 944

原创 速通I2C通信原理以及驱动开发(下)

描述了一个i2c设备,包括标志位,地址,名称,i2c适配器等等,我们发现在使用i2c_transfer时,里面的参数也有i2c_adapter。所以继续跟进i2c_adapter内。这里看第一个函数指针 (*master_xfer):向 msgs 数组定义的给定 I2C 适配器发出一组 i2c 事务,其中有 num 条消息可通过 adap 指定的适配器传输。这段代码主要执行了内核的__i2c_transfer,并在执行前后加了i2c的bus线程锁。这里有多了一组操作函数,实现了i2c设备匹配、创建和移除。

2023-09-01 14:54:33 175 2

原创 速通I2C通信原理以及驱动开发(上)

I2C原理

2023-08-09 17:57:18 294

原创 开漏输出的线与原理

笔者在研究I2C总线时一直不明白为什么开漏输出可以让总线仲裁时产生线与的现象,查另全网也没有很详细的讲解,就自己尝试画了一下,如有错误,请指正。

2023-08-09 17:10:16 495

原创 高通骁龙SM6225 sensor驱动架构(2)以ICM4X6XX为例

这是一个ICM4X6XX传感器的构建脚本。它用于设置构建环境和条件,并加载相关的软件单元。在这个脚本中,首先检查是否定义了SSC_TARGET_HEXAGON_MDSP,如果是,则返回(不执行后续操作)。接下来,根据定义的SNS_ISLAND_INCLUDE_ICM4X6XX变量,判断是否启用ICM4X6XX传感器的island模式(低功耗)。如果启用,则将icm4x6xx_island_enable设置为True。然后,根据定义的ICM4X6XX_ENABLE_DUAL_SENSOR变量,判断是否启用双传

2023-08-02 16:56:42 1220

原创 高通骁龙SM6225 sensor驱动架构(1)

(1) Sensor 用来产生 和/或 消费 异步数据。(2) 每个sensor可实例化一次或多次sensor instances。其中:每个instance使用特殊配置来操作;发给sensor的任何request都会生成一个sensor instance 或者共享已经存在的instance。(3) sensor instances 是请求式的创建,由sensor来终结。

2023-07-28 16:02:49 1708 2

原创 百问网IMXU6LL--pinctrl子系统和gpio子系统编写led驱动

百问网IMXU6LL--pinctrl子系统和gpio子系统编写led驱动

2022-10-24 20:37:12 295 3

原创 通过编写游戏程序的视角去编写字符驱动--设备树-百问imx6ull-pro

编写驱动就好比是创建一个游戏并注册一个角色,每一步都是有意义的

2022-10-19 21:58:20 671 2

原创 Makefile的使用、变量、语法、函数、依赖头文件

在Linux系统中对多个.c文件进行编译时,经常会使用各种gcc指令进行编译,而且每次修改部分.c文件后需要重新编译和链接修改的部分文件。Makefile就相当于一个智能的脚本文件帮助用户更方便快捷的编译。

2022-10-01 00:51:52 618 1

原创 K210、Openmv与串行总线舵机通信(基于micropython)舵机驱动板和舵机控制板代码

最近博主在使用串行总线舵机时,想使用k210控制,由于官方没有相关例程(树莓派的版本是python版本代码,用不了)特此分享一下控制代码。

2022-08-03 16:59:37 3333

原创 二叉树的最近公共祖先--C++两种方法实现

二叉树的最近公共祖先目录二叉树的最近公共祖先题目记录路径暴力法回溯法题目力扣236给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点

2022-04-26 00:47:48 1676

原创 编程将外部RAM2000H--202FH单元中的内容,移入内部RAM20H--4FH中,并将原数据块区域清0.

如题:编程将外部RAM2000H–202FH单元中的内容,移入内部RAM20H–4FH中,并将原数据块区域清0.首先内部外部的数据转移指令是不同的:MOV: 单片机内部的寄存器或者存储器之间相互传递数据(内部RAM);MOVX: 单片机内部的A累加器与片外的数据存储器(片外RAM)传送数据.START: MOV DPTR,#2000H   //取外部RAM首地址    MOV LEN,2F //转移长度MOV R0,#20H      //内部RAM首地址     LOOP: MOVX A

2022-04-14 15:09:33 8091 2

原创 设内部RAM50H单元中存放有20个8位有符号数,试编程找出其中的最大数,将其存入60H单元中。

如题:设内部RAM50H单元中存放有20个8位有符号数,试编程找出其中的最大数,将其存入60H单元中。

2022-04-14 14:30:23 1712 4

原创 FreeRTOS--事件组

事件组:利用队列标记前置任务,通过检查标记拉触发条件任务的机制。例:存在任务A、B、C、D,C任务需要A或B完成后才可以触发,D任务需要A和B任务都完成才触发。xEventGroupSetBits()函数可在A、B的对应位置(事件位)写1 or 0(事件标志)用来标记是否完成。事件组的流程创建事件组等待(事件位,所有/任一,超时)a.关闭调度器 (不会再ISR使用Event Group)b.当前uxEventBits是否满足:满足:返回ok,不满足:1.返回ERR2.休眠:放入even

2022-03-22 16:46:16 304

原创 FreeRTOS--信号量与互斥量

信号量(semaphore):用来表示可用资源大小,对多个资源访问,实现有序访问,计数值可以从0~max互斥量(mutex):用于对一个资源的访问,可以优先级继承,有两个值:0、1优先级反转:假设有高中低优先级的任务,当低优先级的任务在获取semaphore,高优先级的任务也要获取该semaphore时,高优先级的任务会获取失败,此时中优先级的一直运行,高优先级的任务就被中低优先级的任务卡死优先级继承:假设有高中低优先级的任务,当低优先级的任务在获取mutex,高优先级的任务也要获取该mutex时,

2022-03-21 13:55:00 780

原创 FreeRTOS--队列

在讲队列前,先思考一下这个问题:下面这个程序,如果用RTOS实现会出问题吗?c:int a = 0;void fun_a(){ a++;}void fun_b(){ a++;}int main(){ while(1){ fun_a(); fun_b(); }}RTOS:int a = 0;void fun_a(){ a++;}void fun_b(){ a++;}int main(){ creat_Task(fun_a); creat_Task(fu

2022-03-20 18:27:16 189

原创 FreeRTOS-ARM架构、TCB结构体,调度机制

对于ARM架构来说,主要有3部分构成:CPU,RAM,FLASH。CPU内部主要是运算单元和寄存器单元,可以读写RAM,修改内存,也可以读取FLASH里的汇编代码。RAM为内部存储空间,有栈的数据结构,对于地址有内存存储,可被CPU改写。FLASH为存储代码的空间,可被CPU读取。对于每个任务在内存总都有相应的TCB结构体包含栈顶,两个链表(雾),优先级,栈的起始Q:在任务切换时,所有寄存器都要保留吗?A:都要保留,但是对于硬件中断来说,只需要保存用到的寄存器即可;对于子函数来说,不需要保存子函

2022-03-18 13:45:25 4214

原创 汇编指令小结

1

2022-03-16 16:51:45 634

原创 初识C++STL库

初识STL

2022-01-31 00:07:55 172

原创 颜色识别、轮廓识别-树莓派 Opencv-基于Python学习记录DAY-4

1

2021-09-26 16:52:11 5945 1

原创 形态学处理-腐蚀、膨胀、开闭运算-树莓派 Opencv-基于Python学习记录DAY-3

腐蚀作用是消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点。 cv.erode(img,kernel,iterations)膨胀作用是将与物体接触的所有背景点合并到物体中,使目标增大,可添补目标中的孔洞。 cv.dilate(img,kernel,iterations)核这个概念可以理解为处理后的色块大小核的像素面积越大处理产生的色块越大越模糊以下为原图,腐蚀图,膨胀图效果示例代码:import numpy as npimpo.

2021-09-23 20:42:00 414 1

原创 图像绘画-树莓派 Opencv-基于Python学习记录DAY-2

今天学习对图像的绘画操作绘制直线、圆、矩形、椭圆、多边形、文字图形 函数 直线 cv.line(img,start,end,color,thickness) 图片对象,起始坐标(x轴,y轴),结束坐标,颜色,宽度 圆 cv.circle(img,centerpoint, r, color, thickness) 图片对象,中心点坐标,半径大小,颜色,宽度 矩形 cv.rectangle(img,leftupper,

2021-09-22 14:19:45 1185 1

原创 cv2库、numpy库、matplotlib.pyplot库-树莓派 Opencv-基于Python学习记录DAY-1

首先是接触到了3个常用的python库 :numpy,cv2,matplotlib.pyplot。 在开始前博主因为没装matplotlib.pyplot而报了次错,这里贴一下,安装matplotlib.pyplot的指令为python3安装pyqt5:sudo apt-get install python3-pyqt5为python3安装matplotlib:sudo apt-get install python3-matplotlib ...

2021-09-19 22:00:20 1151

原创 MQTT协议 STM32、ESP8266基于EMQ个人服务器——报文处理(1)

新人博主第一次写blog,本文主要是对于MQTT协议报文和stm32的硬件、代码层面进行讲解,有不足的地方欢迎大家指正。本人在学习MQTT协议时走了不少弯路,而且网络上对于STM32与MQTT通讯的资料少之又少,所以写下本文供大家参考前期准备本次实验材料主要有: STM32F103ZET6开发板/核心板+ESP8266开发板+n个led灯上面这款ESP8266就可以,很方便使用MQTT协议基本原理先讲一下MQTT是怎么通讯的吧MQTT共有3个角色和1个数据流:发布者(Pu

2021-07-25 20:36:35 2279 6

空空如也

空空如也

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

TA关注的人

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