自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

淹死的鱼

个人主页:zengwangfa.top

原创 【Linux】mjpg-streamer 源码分析

文章目录1.总体流程2.主进程的源码分析2.1 参数接收与解析2.2 获取参数2.3 调用输入函数2.3.1 程序手动中断信号2.3.2 strchr()函数2.3.3 strndup()函数2.3.4 分离参数3.输入通道源码分析3.1 input_init3.2 input_run3.3 cam_thread4.输出通道源码分析4.1 output_init4.2 output_run4.3 ...

2020-03-31 23:26:58 138 1

原创 【电赛】2019电赛纸张计数显示装置Github仓库说明

Github项目地址、设计下载内含: 电赛论文 程序设计 机械结构设计 硬件电路设计 综合测评相关设计 交互显示设计 设计详细说明纸张计数显示装置Github仓库说明???? 个人主页????| 电赛论文????| 软件说明????| 机械说明????| 交互界面说明????| 综合测评???? 1、简介✏️纸张计数显示装置基于RT-Thread实时...

2020-02-06 00:01:14 3519

原创 【ARM裸板】LCD硬件原理、时序及初始化

文章目录1.LCD与OLED的区别2.LCD原理2.1 颜色如何确定?2.2 LCD如何“行扫描”?2.3 如何跳到下一行进行“行扫描”?2.4 如何进行下一个“场扫描”?3.LCD时序4.LCD控制器4.1 像素数据格式4.2 调色板5.编程框架6. 结构体参数6.1 引脚极性结构体6.2 时序结构体6.3 LCD控制器结构体7.初始化LCD引脚8.LCD控制器初始化8.1 LCDCON18.2...

2020-02-04 23:05:55 428

原创 【图床】图床、PicGo进行图片管理与上传

文章目录1.注册七牛云账号2.创建标准存储空间2.1 添加对象存储2.2 设置存储空间2.3 上传图片2.4 获取图片外链3.使用PicGo进行管理与上传3.1 设置七牛图床3.2 复制外链3.3 自定义链接格式3.4 PicGo插件1.注册七牛云账号点击注册七牛云需要实名认证,认证之后再进行上传图片点击进入“个人中心”-> “个人信息”,进行实名认证,即有10G免费存储空间...

2020-02-04 23:04:13 475

原创 【ARM裸板】Nand Flash编程

文章目录1.读芯片ID1.1 读芯片ID时序1.2 由ID数据获得芯片参数2.读数据2.1 NAND内部结构分析2.2 地址序列与时序2.3 读数据流程2.4 转换所读地址的列与页2.5 NAND等待就绪2.6 读取数据函数2.7 NAND重定位2.7 读数据测试3.擦除3.1 擦除时序3.2 地址和参数合法性3.3 擦除函数3.4 擦除数据测试4.写数据4.1 写数据时序4.2 写数据函数4.3...

2020-02-03 22:54:19 424

原创 【ARM裸板】Nand Flash基础与时序分析

文章目录1.硬件知识1.1 如何传输地址信号?1.2 如何传输命令?1.3.NAND、NOR、SDRAM、DM900数据总线,如何互不干扰?1.4 给NAND烧写,如何判断烧写完成?2.如何操作NAND2.1 读ID2.2 读内容3.NAND初始化3.1 时序3.2 注意NAND是8位的3.3 NAND控制器使能、初始化ECC1.硬件知识1.1 如何传输地址信号?DATA0 ~ DATA...

2020-02-03 22:52:29 367

原创 【ARM裸板】Nor Flash基础知识与编程示例

文章目录1.NOR与NAND的区别2.命令表2.1 读数据2.2 读ID2.3 CFI模式3.基本函数3.1 写函数3.2 读函数4.识别NOR4.1 读取ID号4.2 进入CFI Mode4.3 读取容量4.4 读取各个扇区4.4.1 获得region数量4.4.2 region详细信息4.5 退出CFI Mode5.写数据5.1 写入5.2 判断数据写入完成6.测试6.1 读取6.2 写入6....

2020-02-02 22:56:46 334

原创 【ARM裸板】定时器中断示例与分析

1.定时器结构分析 1.每来一个CLK,TCNTn减1 2.当TCNTn == TCMPn时,(可以把对应的PWM引脚翻转)TCNTn与TCMPn的值来自寄存器TCNPBn与TCMTBn 3.TCNTn继续减1,当TCNTn == 0时,可以产生中断(PWM引脚再次翻转) 4.TCNTn == 0时,可自动加载初值2.初始化1.设置时钟源2.设置初值3.加载初值,启...

2020-02-01 22:52:21 253

原创 【ARM裸板】按键外部中断过程及示例

文章目录1.初始化1.1 中断源1.2 中断控制器1.3 CPU使能中断1.4 start.S设置中断向量表1.5 start.S设置中断处理1.5.1 设置栈1.5.2 保存现场1.5.3 处理中断1.5.4 恢复现场2.中断服务函数2.1 分辨中断源2.2 调用处理函数2.3 清中断1.初始化设置中断源(让它能发出中断信号)设置中断控制器(让它能发出中断信号给CPU)设置CPU总开关...

2020-01-30 23:01:49 74

原创 【ARM裸板】软件中断分析及示例

文章目录1.APP如何切换模式2.SWI中软处理过程2.1设置栈2.2 保存现场2.3 处理swi异常2.4 恢复现场3.取出SWI指令中的值1.APP如何切换模式APP一般运行于User Mode下,受到限制(例如不可访问硬件)如果APP想要访问硬件,必须切换模式如何切换?发生异常即可:软中断,swi #val中断未定义指令异常2.SWI中软处理过程执行异常处理函数...

2020-01-29 23:40:33 188

原创 【ARM裸板】未定义指令异常分析及示例

文章目录1.未定义指令异常示例1.1 在汇编中加入string1.2 MRS & MSR1.3 设置und的栈1.4 保存现场1.5 处理异常1.6 恢复现场1.7 验证2.程序执行过程1.未定义指令异常示例根据5.1可知,执行异常处理函数之前,硬件会处理的事情: 1.lr_und保存有被中断模式中的下一条即将执行的指令的地址 2.SPSR_und保存被中断模式CPSR 3...

2020-01-29 22:53:43 297

原创 【ARM裸板】ARM模式、异常与状态

文章目录1.两种流程处理2.中断处理过程2.1 硬件初始化2.2 执行程序2.3 产生中断2.4 执行中断3.ARM的7种模式(Mode)3.1 异常向量表4.ARM的2种状态(State)5.异常的处理流程5.1 进入异常5.2 退出异常6.程序以thumb指令集运行6.1 gcc以thumb编译6.2 如何从arm切换至thumb6.3 注意1.两种流程处理1.查询方式特点:简单、但...

2020-01-26 20:25:38 529

原创 【ARM裸板】内存控制器、SDRAM基础与代码重定位

文章目录1.CPU如何控制外设?2.CPU如何选择寄存器?3.外设共用地址、数据总线,如何互不干扰?4.谁控制片选引脚5.CPU如何读写数据的方向?6.CPU不同位宽设备如何连接并读取数据【内存控制器】6.1 连接方式6.2 CPU读取ROM数据1个字节6.3 CPU读取ROM数据4个字节7.如何根据原理图确定芯片访问地址7.1 方法7.2 Nor Flash确定访问地址7.3 Net芯片确定访问...

2020-01-16 18:05:50 254

原创 【ARM裸板】S3C2440 时钟设置与分析

文章目录1.时钟源最大值2.时钟源2.1 两种时钟源2.2 选择时钟源3.上电时钟分析4.编程控制时钟速度4.1 时钟计算公式4.2 MPLLCON寄存器4.3 CLKDIVN寄存器5.注意事项5.1 注释6.S3C2440默认时钟频率由时钟树分析,时钟源通过选择器接入给MPLL(Main PLL)与UPLL(USB PLL)经过MPLL得到FCLK提供给CPU[ARM920T]FCLK...

2020-01-15 13:55:04 41

原创 【ARM裸板】启动文件与栈的简略分析

文章目录1.start.S过程2.led.c过程3.问题3.1 为什么要设置栈?3.2 反汇编程序分析1.start.S过程设置栈调用main函数,并把返回地址保存在LR(R14)中.text.global _start_start: /* 设置内存: sp栈 */ ldr sp, = 4096 /* nand 启动 */ /* 调用main函数 */ bl main ...

2020-01-15 13:23:38 69

原创 【电赛】2019电子设计竞赛 纸张计数显示装置(F题)

2019年全国大学生电子设计竞赛纸张计数显示装置(F题)【本科组】[外链图片转存失败(img-9bk1h47P-1568302010340)(https://github.com/zengwangfa/2019-Electronic-Design-Competition/tree/master/media/6ac5361fa9b6c8eeee5dd25e7f2a6793.png)]JD04...

2019-10-24 15:50:34 17460 4

原创 【Linux】Linux基础命令及英文全称

文章目录一、系统启动一般流程1.1 Windows1.2 Linux1.2.1 Linux简单驱动程序矿建二、S3C2440内部资源三、命令入门3.1 终端Teminal3.2 Linux命令提示符3.3 Linux命令的格式3.4 常见命令含义3.5 rm -rf /*的含义3.6 相对/绝对路径四、附录:常见Linux命令英文全称一、系统启动一般流程1.1 Windows启动挂在C盘 D...

2019-09-22 22:58:38 240

原创 【操作系统】RT-Thread 入门学习

一、嵌入式操作系统1.1 软实时与硬实时硬实时操作系统:严格限定在规定时间内完成任务,否则就会导致灾难性的发生,例如导弹拦截系统、汽车引擎系统等。软实时操作系统:可以允许偶尔出现一定的时间偏差,但是随着时间的偏移,整个系统的正确性会随之下降,例如DVD播放器,允许其偶尔出现画面或声音的延迟。1.2 主流嵌入式RTOS主流RTOS主要有:uC/OS、FreeRTOS、RT-Thread...

2019-08-22 10:30:19 1896

原创 【嵌入式】计算机三级-嵌入式基础概念笔记

嵌入式系统ARM网络C类IP地址范围:192.0.0.1~223.255.255.254前三个字节为网络地址,第4个字节为主机地址适用于小规模的局域网编码目前数字有线电视所传输的数字采用的压缩编码标准是MPEG-2汉字一般占用2个字节指令集操作系统...

2019-08-03 09:59:49 346

原创 【树莓派】树莓派安装命令行神器TheFuck

一、TheFuck 简介一个开源的命令行神器——TheFuck,其是一个校正终端命令输入的工具常常在使用linux为内核的操作系统很多时候容易将命令输错,然后出现Terminal提示你未找到命令,或者权限不足,有时内心会十分崩溃,一定默念“What the fuck!”,这个时候只需要敲一个“fuck”发泄一下,thefuck就会为你校正终端命令,从此舒心畅快。项目地址: TheFuck...

2019-06-12 20:07:10 526

原创 【通信协议】1-Wire 单总线

一、1-Wire相关介绍1-Wire由 美国Dallas(达拉斯) 公司推出采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的单总线的数据传输速率一般为16.3Kbit/s,最大可达142 Kbit/s,通常情况下采用100Kbit/s以下的速率传输数据1-Wire线端口为漏极开路构或三态门的端口,因此一般需要加上拉电阻Rp,通常选用5K~10KΩ1-Wire数据传输的次序为从...

2019-05-23 10:38:08 3955

原创 【通信方式】I2C总线

一、I2C相关介绍I2C由 Philips 公司推出I2C Bus——Inter-Integrated Circuit 即集成电路总线速率:普通模式 - 100Kbps;高速模式 - 400KbpsI2C总线端口为漏开结构,因此一般需要加上拉电阻Rp,通常选用5K~10KΩI2C总线以字节为单位收发数据,一个字节为一帧,数据传输的次序为从最高位到最低位I2C应答位遵循“谁接收谁产生”...

2019-05-22 20:02:37 528

原创 【小贴士】Altium Designer 小技巧

1.走线时放置过孔当导线在 PCB 板上走线时遇到障碍物时可加一个过孔使导线从另一层继续走线,在走过程中按小键盘的乘号(*)键可添加一个过孔并切换到另一层走线2.自动放置过孔当给Top layer 与 Bottom layer 的地覆铜后,为了使得上下地更好的导通,一般会放置许多过孔,以便上下联通。选择工具(T)——> Via Stitching——>Add Stitch...

2019-04-18 21:46:18 123

原创 【笔记】MS5837-30BA压力传感器调试笔记

一、MS5837-30BA相关介绍1.技术参数:陶瓷-金属封装,3.3 x 3.3 x 2.75 mm高分辨率模块,0.2 mbar (1mbar = 100pa)快速转换可达 0.5 ms低功率,0.6 µA(25°C 时待机功率 < 0.1 µA)集成式数字压力传感器(24 位 ΔΣ ADC)电源电压:1.5 至 3.6 VI2C 接口,地址:1110110x( Wri...

2019-04-01 23:02:31 2773 40

原创 【事项】ROV设计过程

通信协议返回舵机类设备 开启的当前状态当上一次值last_value != current_value 写入FlashFlash 一般20W次读写

2019-03-27 19:52:04 749

原创 【笔记】微信小程序学习笔记

wx.navigateTo跳转到新页面,有返回按钮(左上角)wx.redirectTo跳转到新页面,无返回按钮 (左上角)

2019-03-24 10:58:11 81

原创 【笔记】HC-05蓝牙模块调试笔记

一、蓝牙HC-051.AT模式:【指示灯为慢闪】Step1:进入AT模式上电前按住模块按键,再上电(使得AT引脚拉高进入AT指令模式)默认工作模式:从模式串口参数:波特率:38400 bps8位数据位1位停止位无校验位Step2:连接方式蓝牙与USB转TTL模块连接方式RXD-TXTXD-RXVCC-VCCGND-G...

2019-03-19 22:23:43 601 6

原创 【笔记】卡尔曼滤波器C程序

Roll(翻滚): 欧拉角向量的x轴Pitch(俯仰角): 欧拉角向量的y轴Yaw(偏航):欧拉角向量的z轴

2019-03-06 22:36:04 551

原创 【STM32】OV2640摄像头学习笔记

一、OV2640 Camera OV2640是OmniVision公司生产的一颗1/4寸的CMOS UXGA(1632*1232)图像传感器; 支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹等自动控制功能。 UXGA最高15帧/秒,SVGA可达30帧,CIF可达60帧; 支持图像压缩,即可输出JPEG图像数据.基本概念:UXGA,即分辨率位16001200的输出...

2019-03-03 13:01:35 16093 3

原创 【Git】Git、Github学习记录

1.前言GitHub 与 Git 的关系GitGit 是一款免费、开源的分布式版本控制系统Git是著名的 Linux 发明者 Linus Torvalds 开发不管是学习 GitHub ,还是以后想从事编程行业,Git 都可以算是必备技能。GitHub主要提供基于 git 的版本托管服务。也就是说现在 GitHub 上托管的所有项目代码都是基于 Git ...

2019-03-02 14:17:44 122

原创 【C语言】C语言笔记整理

1.栈与堆的区别:namedifference栈(stack)由编译器自动分配/释放内存堆 (heap)一般有程序员分配/释放内存栈(stack)://exampleint a;char s[] = "adc&amp

2019-02-20 20:13:20 215

原创 【STM32】STM32 OLED打点划线画圆 OLED电子罗盘 程序

目录:一、画点函数二、动态划线三、效果演示注:本文仅用于学习分享用到的工具: STM32 MCU Keil 5用到的库函数为 正点原子 STM32F4 库drv_oled.c /drv_oled.h 下载链接↓↓↓:链接:https://pan.baidu.com/s/1qYsF8yCrYWOhPRCyGoFWDQ提取码:ft7s一、画点函数//画点 //x:0~1...

2019-02-12 18:14:34 4963 50

原创 【电赛】2017年电赛A题——三相逆变电源EG8030测试

目录:一、相关介绍1.创建窗口【Tk】2.创建标签【Label】3.创建按钮【Button】二、简易滚动抽奖界面代码三、界面展示注:本文仅用于学习交流分享,[若有不妥之处,请指正,感谢]关键词:【电赛】【三项逆变电源】【EG8030】用到的工具有: Altium Designer 16.0实现的功能有:①实现三相SPWM②实现三相交流电一、相关介绍SPWM:脉冲宽度按正...

2019-01-24 21:09:34 6231 5

原创 【Python】Python简易滚动抽奖程序

目录:总体介绍1.步进电机简介1)什么是步进电机[^脚注]?2)为什么需要驱动电路去驱动步进电机,而不用IO口直接驱动?3)步进电机的几个概念:2.变焦摄像头参数与结构介绍1)本款变焦摄像头结构:2)其节拍表:3)其对应线序表:4)镜头实物图:3.基础硬件测试驱动1)整体原理图2)PCB电路3)3D_PCB4.STM32控制驱动程序设计1)端口定义与函数声明2)步进电机驱动函数3)按键简单调用转动...

2019-01-22 21:24:01 4159 1

原创 【STM32】可变焦、聚焦摄像头驱动电路与驱动程序——两相四线步进电机驱动

目录:总体介绍1.步进电机简介1)什么是步进电机[^脚注]?2)为什么需要驱动电路去驱动步进电机,而不用IO口直接驱动?3)步进电机的几个概念:2.基础硬件测试驱动1)整体原理图2)PCB电路3)3D_PCB2.STM32控制驱动程序设计1)端口定义与函数声明2)步进电机驱动函数3)按键简单调用转动步进电机【正反转】3.效果展示1).调试图连接图注:本文仅用于学习交流分享,[若有不妥之处,请指正...

2018-12-30 12:13:49 3170 2

原创 【小项目】①基于C8051F020/②基于STM8&串口屏 的简易自动喷洒系统

目录:(一)总体性设计1.基础电路设计【硬件】1)整体原理图2)PCB电路3)3D_PCB程序设计【软件】1.主程序设计2)STM32控制程序设计 【C语言】①对OpenMV发送的数据包进行解析②小车的简单PID控制③系统状态设定3.效果展示1).整体效果图注:仅用于学习分享,分享自己在使用C8051F020单片机中的所做的一个小方案。用到的主要工具材料: Keil 4 C8051F...

2018-12-19 20:29:23 380 5

原创 【小贴士】CSDN博客写作小贴士

目录:(一)介绍1.CSDN简介2.博客写作介绍1)编辑器介绍2)CSDN支持个人主页的美化:(二)创建自己的第一篇博客1.目录示例:2.文本示例:3.文本优化:4.图片示例:5.如何一行插入多张图片:6.插入表格:7.插入代码块:注:仅用于学习分享,分享自己在CSDN博客中写作小技巧。用到的工具材料: 电脑(一)介绍1.CSDN简介CSDN(Chinese Software D...

2018-12-13 15:40:55 238

原创 【DIY】基于OpenMV的STM32追球小车

[DIY]基于openMV的追球小车总体设计1.基础硬件DIY设计1).整体原理图2).PCB电路3).3D_PCB2.openMV简单识别程序设计 与 STM32控制程序设计1)openMV简单识别程序设计【microPython】2)STM32控制程序设计 【C语言】①对OpenMV发送的数据包进行解析②小车的简单PID控制③系统状态设定3.效果展示1).整体效果图注:本文仅用于学习交流...

2018-12-09 16:17:57 7028 126

原创 【树莓派】树莓派采用MJPG-Streamer双摄推流至上位机,实测延时低至200ms[CSI摄像头+USB摄像头]

树莓派双摄推流至上位机,实测延时低至200ms[CSI摄像头+USB摄像头]总体流程1.硬件连接与软件及驱动配置1).硬件连接2).软件及驱动配置①电脑通过putty连接树莓派②树莓派打开摄像头使能③输入调用摄像头命令使用raspivid工具2.上位机PC端的接收视频流1)安装Mpalyer视频播放器2)设置mplayer为系统环境变量3)CMD窗口下启动Mplayer 接收视频流3.延迟效果测试...

2018-12-02 19:27:44 2398 1

原创 【树莓派】树莓派推视频流至上位机,实测延时低至150ms[自带CSI摄像头]

树莓派推视频流至上位机,实测延时低至150ms[自带CSI摄像头]总体流程1.硬件连接与软件及驱动配置1).硬件连接2).软件及驱动配置①电脑通过putty连接树莓派②树莓派打开摄像头使能③输入调用摄像头命令使用raspivid工具2.上位机PC端的接收视频流1)安装Mpalyer视频播放器2)设置mplayer为系统环境变量3)CMD窗口下启动Mplayer 接收视频流3.延迟效果测试注:本文...

2018-11-28 20:16:08 4461 5

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