自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shenlong1356的博客

龙行龘龘

  • 博客(243)
  • 资源 (41)
  • 收藏
  • 关注

转载 BLE蓝牙笔记----连接参数更新

1、主机连接参数更新1.1、LL_CONNECTION_UPDATE_REQ连接参数第一次是主机发送的 CONNECT_REQ 中传递的。 而这个命令的使用只限主机使用,也就是说主机根据需要随时都可以进行参数更新。从机接收到这个命令后要么使用参数,要么断开连接。LL_CONNECTION_UPDATE_REQ包格式Instant :在连接更新参数时,并不是请求发送过去,这些参数就立刻生效,是在约定的时刻进行更新。BLE 的同步是通过一个连接事件计数器控制的。而这个数据包中的 Instan.

2021-01-24 15:27:12 2911

转载 BLE蓝牙笔记----数据包解析

目录1、包格式2、广播包2.1、PDU Type2.2、MAC地址3、数据包3.1、LLID3.1.1、LL Data PDU3.1.2、LL Control PDU3.2、NESN/SN3.3、MD1、包格式2、广播包2.1、PDU Type具体定义如下。可以看出扫描PDU和发起连接PDU都属于广播包2.2、MAC地址TxAdd/RxAdd,各占1bit,表示随后的Device Address字段代表的蓝牙MAC地...

2021-01-23 22:28:41 7678

转载 BLE蓝牙笔记----广播连接过程

目录1、广播1.1、广播间隔1.2、三个信道切换时间间隔1.3、广播事件2、扫描与应答3、建立连接3.1、锚点3.2、重要的时间参数3.3、连接状态--主机3.2、连接状态--从机4、广播软件设计流程图1、广播在广播事件中, 每一个广播事件都会在 3 个广播信道中进行数据传输, 而且每一个事件都是以最小的信道编号开始传输;也就是说当广播事件来了,这个 PDU 是依次从广播通道 37、 38、 39 中进行传输。并不是一起同时在三个信道一起广播;设...

2021-01-23 19:32:19 6821

原创 linux音频驱动之ALSA框架

2020-06-23 09:48:34 544

原创 linux驱动之I2C总线驱动框架分析

Table of Contents1、I2C模型框图2、设备信息层2.1、非设备树形式2.2、设备树形式3、芯片控制器层adapter3.1、控制器初始化3.2、控制器底层传输函数(起始,数据,应答,停止)4、核心层core.c i2c_bus4.1、i2c_bus总线初始化4.2、client(设备)和i2c_driver(设备驱动)匹配过程4....

2020-05-06 13:46:06 1076 1

原创 linux内核移植步骤

1.解压内核源码 tar -jxvf linux-xxx.tar.bz2 或者 tar -zxvf linux-xxxx.tar.gz2.清除之前的配置clean - 清大部分生成的文件, 但是保留配置文件, 以及可以保证足够编译模块的信息。mrproper - 清所有的生成文件, 以及配置文件, 以及各种备份文件distclean - mrproper 效果 + ...

2020-04-23 23:14:35 3778

转载 linux 文件打开(open)原理,非父子进程,父子进程打开文件关系

1、文件描述符fd和文件描述符表概述在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引(fd),其是一个非负整数(通常是小整数),文件描述符fd和文件file指针是文件描述符表的重要内容,用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符。程序刚刚...

2020-03-04 19:10:18 2646

转载 位置有关码和位置无关码详细解释

1、总体介绍代码的运行分为三个阶段:取指,译码,执行,而取指令肯定要知道代码地址,执行过程又包含对变量的读写,对变量的读写也得知道变量的地址吧,至于代码的地址和变量的地址怎么确定呢?答:由编译器确定,编译器确定地址分为两种形式,1、根据当前PC+偏移地址确定地址。2、直接用链接地址对于第一种方式,地址是动态的,会根据PC的值变化而变化,对于第二种方式就是固定为我们指定的链接地址...

2020-03-01 22:56:05 3026 2

原创 uboot 代码重定位(位置有关码)(存储地址,运行地址,链接地址)

Table of Contents1、代码启动过程简要分析2、存储地址,运行地址,链接地址2.1、存储地址2.2、链接地址2.3、运行地址2.4、链接地址和运行地址的区别3、位置有关码,位置无关码详细解释4、代码重定位参考文章:https://blog.csdn.net/lizuobin2/article/details/52049892#1、代...

2020-03-01 18:31:44 4800 1

原创 linux (platform driver)平台设备驱动匹配方法

Table of Contents一、匹配函数platform_match1.1、设备树匹配方法1.2、id_table匹配方法1.3、dev-name和platform_driver->drv->name匹配方法一、匹配函数platform_match平台设备驱动分为设备层和驱动层,每当有新的设备或者新的设备驱动注册时都要首先调用匹配函数进行匹配...

2020-02-23 16:01:48 2580

原创 LCD数据手册解析

Table of Contents一、基本信息(分辨率尺寸)二、时序解析2.1、水平horizontal2.2、垂直vertical2.3、时钟相位极性(上升沿,或者下降沿有效)一、基本信息(分辨率尺寸)二、时序解析linux LCD驱动开发之原理时序分析(二)2.1、水平horizontalHS Blanking = HSPW + HBP...

2020-02-21 18:09:05 3465

原创 linux LCD 驱动编写(四)

一、应用程序访问驱动原理LCD驱动程序假设app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0--------------------------------------------------------------kernel: fb_open int fbidx = iminor(inode...

2020-02-21 16:28:37 624

原创 Linux LCD重要数据结构解析

一、struct fb_infoFb.h linux-3.5\include\Linux用法://驱动程序必须用这个结构体定义的成员,并且从平台设备数据中取出信息对该结构体进行填充struct fb_info {atomic_t count;int node;int flags;struct mutex lock; /* Lock for open/releas...

2020-02-21 14:27:08 622

原创 tiny4412之内存控制器寄存器配置(DDR3 SDRAM)(三)

Table of Contents一、CONCONTROL寄存器1.1、chipn_empty1.2、clk_ratio二、MEMCONTROL寄存器2.1、bl (Memory Burst Length)突发长度2.2、Number of Memory Chips 内存数量配置2.3、芯片数据位宽度2.4、内存类型(DDR DDR2 DDR3 LPDDR2-S...

2020-02-13 18:37:48 1191 1

转载 tiny4412之内存控制器工作时序(DDR3 SDRAM)(二)

Table of Contents一、SDRAM 简易工作流程二、tRCD 行列延迟RAS to CAS Delay三、 CL(RL,Read Latency)读取潜伏期四、tWR 写延迟五、突发长度--(Burst Lengths)六、预充电时间tRP七、刷新时间八、例说一、SDRAM 简易工作流程二、tRCD 行列延迟RAS to CAS Delay...

2020-02-12 18:56:21 1020

原创 tiny4412之内存控制器(DDR3 SDRAM)(一)

Table of Contents一、原理图解析1.1、jz24401.1.1、jz2440引脚说明1.1.2、地址(ADDR)引脚说明1.1.3、Bank引脚说明1.1.4、DQM引脚说明1.1.5、片选(CS)说明(决定寻址起始地址)1.1.2、jz2440内存大小计算方法1.2、tiny44121.2.1、tiny4412引脚说明1.2.2、D...

2020-02-09 22:56:39 1446

原创 linux 自带LCD驱动框架(三)

一、驱动框架图二、内核kernel层(Framebuffer)2.1、入口出口函数(init exit)/*linux/drivers/video/fbmem.c*/主设备号: 29,提供了读写相关接口函数#define FB_MAJOR 29 /* /dev/fb* framebuffers */static const struct fi...

2019-12-26 17:20:57 761

转载 linux LCD驱动开发之原理时序分析(二)

Table of Contents一、LCD显示图像原理:2.1、物理屏、 虚拟屏认识2.2、扫描原理二、LCD时序分析:2.1、控制信号:2.2、重要的时间参数:2.3、帧的传输过程2.4、行中像素数据传输过程三、专业术语(英文解释):一、LCD显示图像原理:硬件接口见:https://blog.csdn.net/shenlong1356/articl...

2019-12-24 17:01:28 1067

原创 LCD驱动之接口分析(一)

Table of Contents一、LCD基础知识1.1、常见接口1.1.1、 TTL接口:1.1.2、LVDS接口:1.1.3、MIPI接口:1.1.4、EDP接口1.1.5、VGA1.1.6、HDMI1.2、LCD应用领域一、LCD基础知识1.1、常见接口参考博客:https://blog.csdn.net/wocao1226/artic...

2019-12-23 22:00:32 3588

原创 linux 驱动之设备树基础概念

Table of Contents一、设备节点1.1、节点命名方式二、节点内的属性1、属性值格式2.1.1、字符串2.1.2、32 位无符号整数2.1.3、字符串列表2、标准属性2.2.1、compatible 属性2.2.2、model 属性2.2.3、status 属性2.2.4、#address-cells 和#size-cells 属性2...

2019-12-15 17:31:41 1023

原创 linux设备树驱动之地址编码#address-cells和#size-cells

// 父节点的address-cells和size-cells决定子节点的reg的address和lenth字段的长度,cell的单位为32bit#address-cells  // 子节点reg的address为几个32bit的整型数据#size-cells    // 长度为几个32bit整型数据,如果为0,则没有lenth字段node{ reg = <addres...

2019-12-10 15:13:13 2009

原创 linux 驱动之自旋锁笔记

Table of Contents一、自旋锁介绍二、使用自旋锁注意事项三、自旋锁编程步骤1.定义自旋锁2.初始化自旋锁3.获得自旋锁4.释放自旋锁5、自旋锁使用模板四、衍生自旋锁五、参考代码一、自旋锁介绍自旋锁(Spin Lock)是一种典型的对临界资源进行互斥访问的手段,名称来源于它的工作方式。为了获得一个自旋锁,在某CPU上运行的代码需先...

2019-11-30 20:43:33 309

原创 linux 驱动之原子操作

Table of Contents一、原子操作介绍二、什么情况下选择使用原子操作?三、原子操作编程步骤1、定义并初始化原子变量 atomic_t2、对原子变量进行原子操作(计数)1)、原子变量自增/自减2)、原子变量加/减3)、设置原子变量的值4)、获取原子变量的值5)、操作并测试6)、操作并返回四、参考代码一、原子操作介绍什么叫原...

2019-11-30 16:55:23 434

原创 linux 驱动之定时器编程

Table of Contents定时器简介1、HZ2、jiffies3、tick (节拍)定时器编程步骤1、定时器初始化2、添加定时器到内核并启动定时器3、编写定时处理函数4、其他操作参考代码定时器简介1、HZ系统定时器频率,与体系结构相关,系统启动根据HZ设置定时器硬件HZ = (100) (ARM 平台)2、jiffies...

2019-11-28 20:44:13 359

原创 linux 中断之工作队列workqueue (自己创建的工作队列,减小默认线程负担)

默认工作队列和自己创建工作队列对比介绍1、上一节我们用的是schedule_work(&btn_work); 和schedule_delayed_work(&btn_dwork, 5*HZ);调度任务这两个调度函数都是把任务交个内核默认线程(event)管理执行,一旦向内核默认线程提交的任务太多,将导致内核默认线程负担太重,影响实时性2、这一节我们使用的是queu...

2019-11-28 16:52:11 631

原创 linux 中断之工作队列workqueue (默认的工作队列,内核默认线程负担重)

Table of Contents什么是workqueue两种形式的工作队列编程步骤1、初始化2、登记调度参考代码什么是workqueueLinux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。工作队列(workq...

2019-11-28 12:06:38 653

原创 linux 中断之tasklet

Table of Contents1、tasklet 初始化2、tasklet 处理函数3、tasklet的登记调度参考代码1、tasklet 初始化#define DECLARE_TASKLET(name, func, data) \struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(0), func, data...

2019-11-28 11:24:31 176

原创 SPI裸机驱动学习笔记

CPOL和CPHA详解CPOL 时钟极性表示时钟CLK线空闲状态时高还是低CPOL=0 空闲状态为低CPOL=1 空闲状态为高CPHA 时钟相位表示第一个还是第二个边沿采集数据CPHA=0 第一个边沿采集数据CPHA=1 第二个边沿采集数据SPI四种模式我们常用的是模式0和模式3,因为它们都是在上升沿采样数据,不用去在乎时钟的初始电平是什么,只要在上...

2019-11-14 21:24:15 394

原创 stm32外扩外部sram学习笔记

在一般情况下stm32内部sram是足够使用的 MDK配置如下 但是有些时候内存是不够用的,比如用到ucgui的时候或者做大项目时就需要外扩sram,倘若你要把外部sram作为运行内存则可以做如下配置: 另外一种方法就是自己写malloc函数,正点原子的内存管理函数可以借鉴一下:__align(32) u8 mem2base[MEM2_MAX_SIZE] __attribu...

2019-08-02 10:29:49 8224

原创 stm32 USB学习笔记

发现csdn写博客的markdown很不好用,转到博客园了下面的文章希望对大家有帮助,高手绕道:https://www.cnblogs.com/shenLong1356/p/11287833.html...

2019-05-09 09:37:14 1526

原创 linux驱动--输入子系统input

参考:https://blog.csdn.net/lizuobin2/article/details/51508839目录什么是输入设备框架:输入子系统的工作流程(以按键为例):1、开机,执行input.c input_init函数2、应用程序打开输入设备input_open_file,通过input_table找到事件处理器3、应用程序调用read函数 ...

2019-04-02 17:20:08 258

原创 linux驱动 struct file_operations 解析

目录file_oprations整体解析int (*open) (struct inode *, struct file *);int (*release) (struct inode *, struct file *);ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);ssize_t (*w...

2019-04-02 11:52:59 1173 1

转载 ARM--LCD控制原理笔记

目录LCD接口介绍:概念:2440LCD接口原理图解析:LCD显示图像原理:扫描:LCD时序:控制信号:时序图:时序图时间参数:LCD 控制器LCD接口介绍:概念:2440LCD接口原理图解析:①是时钟信号,每来一个CLK,电子枪就移动一个像素;②是用来传输颜色数据;③是垂直方向同步信号...

2019-03-28 17:33:03 1100

原创 linux驱动——平台总线驱动 platform_driver

目录:平台总线的意义:平台总线定义:平台总线的设备和驱动 platform_device 和 platform_driver平台总线驱动的编写步骤:1、定义设备和资源:2、定义驱动和实现probe方法3、匹配方法解析4、接口函数(open read write ....)亮灯和灭灯 的实现参考别人的笔记:实验代码:plat_ded_pdrv.cp...

2019-03-26 17:13:44 1974

原创 linux设备驱动之——总线模块驱动编写步骤

目录:总线设备驱动模型设备 总线 驱动 分离思想文件系统sysfs实验1:完成mybus的构建实验步骤实验1代码:实验运行结果:驱动实验总结:总线设备驱动模型设备 总线 驱动 分离思想文件系统sysfs总线bus下面很多总线,包括要学习的平台设备:platform...

2019-03-25 21:47:43 836

原创 嵌入式字符设备驱动编写步骤

目录编写步骤:设备号的申请注册注销:通用函数(静态动态申请都可以):静态申请:动态申请:设备号的注销:设备节点的创建与销毁:手动创建设备节点:自动创建设备节点:设备节点的销毁:IO资源的映射与配置:读写函数编写,操作IO口,比如点灯:应用实验程序的编写驱动示例代码:编写步骤:/*编写步骤:**1、编写驱动模块的基本框架h...

2019-03-09 20:42:58 1528

原创 linux驱动基本命令

加载驱动:insmod driver.ko卸载驱动:rmmod driver注意:卸载没有.ko列出加载了哪些驱动: lsmod

2019-03-09 16:03:01 4877

原创 电子设计大赛PID算法总结

pid核心算法如下:pid.En=pid.setdianya-pid.currdianya; //求本次误差pid.Dout=pid.Kp*pid.En-pid.I*pid.En_1+pid.D*pid.En_2; //求输出增量pid.currpwm+=pid.Dout; //本次应该输出的PWM // 计算输出量if(pid.currpwm&amp;amp;amp;amp;gt;pid.pwm_c...

2018-12-01 10:14:37 1832

原创 makefile学习笔记

shell变量的使用 使用变量时在其前面加上($)符号 变量的赋值(=)与变量还有值之间都不能有空格,否则不是自己想要的结果shell怎么调用linux命令 命令前加反引号(就是esc下面的键) 例如 PWD=pwd echo $PWD 效果和执行命令pwd一样if then else结构if [表达式]; then #表达式和括号要有...

2018-08-04 11:47:32 238

原创 c++多态

当子类成员变量与父类成员变量同名时 子类依然从父类继承同名成员 在子类中通过作用域分别符::进行同名成员区分 同名成员存储在内存中的不同位置函数重写和函数重载的区别 函数重写: 在子类中定义与父类中原型相同的函数发生函数重写,函数重写只发生在父类与子类之间 函数重载:是一个类里面有相同的函数名参数不同才叫函数重载函数重写 父类中被重写的函...

2018-07-11 11:41:26 116

文件编码格式转换工具.exe

文件编码格式转换工具.exe

2022-01-01

正点原子stm32f407探索者LD3320语音识别程序

这是使用正点原子探索者开发板实现的LD3320语音识别程序,使用的是spi通信方式,模块唤醒呼叫小李子,要插sd卡,用串口调试助手打印

2020-06-03

stm32 sim800c定位http协议发送定位信息给服务器.7z

这是一个通过正点原子探索者开发板设计的定位系统设计,里面使用sim800c模块进行基站定位,然后利用sim800c模块通过http协议命令发送定位信息给服务器

2020-05-24

跟我一起写makefile.7z

这是一本短小精悍的书,作为makefile入门级别的书籍,个人觉得很不错

2019-06-11

4gEC20开发手册

这是我本人收集的关于4g模块的pdf开发手册,希望对爱好者有帮助,里面介绍了AT指令怎么用,以及调试教程

2019-04-26

计算机四级嵌入式等级考试题库和笔记

这是我本人考试过程中整理的题库和笔记,说实话,重在练习和看错题,做好错题笔记,在考试前夕多看看错题笔记,希望对大家有所帮助

2019-03-31

电子设计大赛电源组PID程序

这是本人参加电子设计大赛的一个STM32工程(电源组),这个工工程实现了Pid动态调节电流电压,精度还可以达到50-100mv

2018-12-01

python学习手册

这是我在收集的python学习手册,希望对学习python的同学有帮助

2018-02-02

stm32门禁系统设计

前段时间基于RFID-RC522门禁控制系统做了个小项目,实现了刷卡开门功能,正好赶上这期活动,特来分享给大家,仅供参考。

2018-02-01

韦东山第一期源码文档

韦东山视频第一期源码文档,希望对学习Linux的同学有帮助

2018-02-01

韦东山第一二期源码文档图片

韦东山第一二期源码文档图片,希望对学习linux的同学有帮助

2018-02-01

嵌入式c语言进阶之道

这是工作中嵌入式c语言的总结,希望对进阶嵌入式c语言的同学有帮助

2018-02-01

c语言经典算法

c语言经典算法,希望对学习算法的同学有帮助,里面理论实践相结合,有代码例程,很经典

2018-01-31

51单片机多任务编程思想

传统的单片机系统监控程序通常是基于单任务机制的.这种机制具有简单直观、编程容易的优点 .然而由于程序只能按单一的线索顺序执行,缺乏灵活性,在复杂系统中难以胜任.为了在更广泛的领域应用单片机系统,必须对传统的单任务机制进行改进. 多任务机制是现代操作系统的突出优点.在这种机制下,CPU的运行时间被划分为许多小的时间片,通过某种调度算法按不同优先级别分配给不同的应用程序.多个应用程序分别在自已的时间片内访问CPU,从而造成微观上各程序分时使用处理器(轮流运行),宏观上并发运行的多任务效果.

2018-01-31

单片机程序设计规范

单片机开发技术规范,希望对学习单片机的同学有帮助!!!

2018-01-31

鸟哥的私房菜第四版高清版

这是鸟哥的私房菜第四版高清版,希望对学习Linux的同学有帮助,一共二十四章,1158页

2018-01-31

stm32f107ptp时钟同步

这是stm32f107ptp时钟同步程序,官方库,经过移植有用,精度300ns左右,建议使用v2版本,主从机修改一下ip 什么的就可以使用了,注意你自己使用的是和哪块评估板类似就在mdk里面选择对应版本,否则会移植不成功

2018-01-30

人工智能白皮书2018版本

人工智能白皮书 2018版本很清晰 100页,很好的书籍,希望对大家有帮助.................................................

2018-01-30

c++五子棋课设

c++五子棋课程设计,希望对学习c++的同学有帮助,很实用

2018-01-26

c++计算器课程设计

c++计算器 课程设计,希望对课设或者c++学习者有帮助!!...............................................................................

2018-01-26

c++课程设计

c++学生信息管理系统课程设计,希望对课设朋友有帮助!!

2018-01-26

stm32f107ptp移植程序

stm32f107时钟同步ptp程序,用到了原子哥的一部分程序,工程模式也是原子哥模式..............................

2018-01-24

基于51单片机门铃课程设计

基于51单片机的门铃课程设计,希望对同学们有帮助,很好的资料

2018-01-09

51单片机课程设计电子时钟设计

基于51单片机的课程设计,电子时钟设计,希望对同学们有帮助.

2018-01-09

LABVIEW温度报警采集课程设计

基于LABVIE的温度采集报警课程设计,希望对大家有帮助.

2018-01-04

LABVIEW汽车仪表课程设计

基于LABVIEW的汽车仪表课程设计,希望对大家有帮助!

2018-01-04

LABVIEW课程设计饮料售货机

LAVIEW饮料售货机课程设计,希望对大家有帮助

2018-01-04

c语言课程设计贪吃蛇

c语言课程设计贪吃蛇,在vc codeblok等环境下运行都可以,希望对大家有帮助

2018-01-03

51单片机课程设计音乐播放器

单片音乐播放器,希望对课设同学有帮助!!!!!!!!!.........................................................................................

2018-01-03

单片机课程设计抢答器

有单片机做了个抢答器,希望对课设的人有帮助!!!!!!

2018-01-03

基于LABVIEW苹果手机课程设计

基于LABVIEW的手机课程设计,非常时髦,界面是苹果手机

2018-01-02

CAN代码生成器

CAN代码生成器,特别好用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2018-01-01

stm32mp3模块

..............................................................................................................................................................................................................................................................................

2017-12-29

stm32电容触摸屏模块

电容触摸屏模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-12-29

LABVIEW课程设计

希望对学习LABVIEW的同学有帮助。

2017-12-27

ucos详细移植教程

希望对学习ucos的同学有帮助,,,,,,,,,,,,,,,,,,,,,,,,

2017-12-25

嵌入式c语言状态机实例

嵌入式c语言,状态机思想,希望对单片机开发者有帮助,实时性很强.......................................................................................................

2017-12-24

简单控制智能小车方法

智能小车控制方法,给学习小车的菜鸟简单控制小车的方法

2017-11-09

正点原子stm32精英贪吃蛇游戏

正点原子精英开发板贪吃蛇游戏,少了一个按键,做一个按键加一个按键就可以玩了.

2017-11-09

空空如也

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

TA关注的人

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