自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Sigmastar SSC8826Q 2K行车记录仪解决方案

行车记录仪是智能辅助汽车驾驶,和管理行车生活的车联网智能终端设备,利用智能芯片处理器、GPS定位、网络通信、自动控制等技术,将与行车生活有关的各项数据有机地结合在一起。行车记录仪如今已经成了必不可少的车载用品之一,同时现在安装行车记录仪也不仅仅只是为了防碰瓷,它还需要具备监控、记录等功能,这就对行车记录仪提出了更高的要求。芯智雲城推出的基于Sigmastar SSC8826Q 2K行车记录仪解决方案,利用我司强大的系统资源整合能力和完善的技术服务体系,助力客户产品丰富化应用并快速导入量产。

2023-08-17 17:07:05 554 1

原创 【STM32】GPIO

GPIO是通用输入输出端口的简称,STM32芯片通过GPIO与外设连接,从而实现与外设的数据收发。STM32的GPIO被分成了很多组/端口(Port),每个Port有16个引脚(Pin),如STM32F103ZET6芯片就有GPIOA~GPIOG 7个端口144个引脚,部分引脚除了作为GPIO使用之外,还有其它专用功能在复用。

2023-07-07 10:22:57 2939 1

原创 【STM32】ISP下载原理分析

ISP下载是指可以通过串行外设,直接将程序下载Flash中,然后自动运行程序的启动方式。ISP的时候需要用到bootloder(自举程序),bootloader存储在STM32内部的自举ROM存储器(系统存储器)中,作用是接收串行外设发送的程序数据并存到Flash中。

2023-06-13 21:55:16 3570

原创 ARM—寄存器详解

一、什么是寄存器1、寄存器是CPU外设的硬件组成部分,可以像访问内存一样访问寄存器(统一编址),用来编程控制外设,CPU设计者定义的,实际是某个外设编程控制的API。2、一般来讲,为了访问的最大效率,CPU的数据总线的位宽与寄存器位宽相同,并且通常进行的是位操作。二、寄存器的分类1、通用寄存器:ARM中有37个,汇编中R0,R1,R2等,是CPU的组成部分,用来CPU运算时暂存数据和结果。...

2023-04-03 16:17:48 697 1

原创 ARM—内存编址

一、外部存储器与内部存储器1、外部存储器:ROM的一种,用来存储程序和数据,对于CPU来说是只读的,由于CPU无法直接访问外存,所以程序和数据是从外存通过I/O或接口传到内存。如IROM、SROM、NandFlash、、NorFLash、硬盘特点:速度慢,但便宜,不占内存空间2、内部存储器:即RAM,用来运行程序的。CPU通过总线访问数据,然后通过容量越来越小,速度越来越快的各级缓存容量到寄...

2023-04-03 16:17:00 556 1

原创 ARM—汇编指令集

一、指令与伪指令1、伪指令:如.Test_start等,本质不是指令,用于指导编译过程,最终不产生机器码。2、指令:ldr,str等,机器码的助记符,最终生成机器码CPU执行。二、两种不同风格的ARM1、官方:LDR R0, [R1] Windows IDE开发环境2、GNU:ldr r0, [r1] Linux及相关开发环境主要区别在大小写以及伪指令方面三、ARM...

2023-04-03 16:15:59 373

原创 Makefile简介

命令时,根据makefile规则只有当文件不存在时才会执行,因此若没有使用假想目标,makefile就不会执行。:编译参数,[-D]添加宏定义,[-Werror]将编译警告转为报错,[-I]指定默认头文件路径。若依赖文件比目标文件新,或者目标文件不存在,则执行命令。若make后不加参数,默认执行第一个目标。先预处理、编译、汇编,再链接。对应的命令,所以需要假想目标。预处理、编译、汇编、链接。:将依赖写入到指定文件。若当前路径下存在名字为。

2023-03-30 11:09:08 69 1

原创 GPIO的八种工作模式

GPIO八种工作模式

2023-02-02 14:30:52 15936

原创 单片机扫盲

单片机的简单介绍

2023-01-23 18:33:29 6402

原创 定时器的使用

TCON寄存器BO-B4为外部中断寄存器,与定时器/计数器无关TMOD寄存器。

2022-12-29 22:39:10 172

原创 按键的使用

按键是一种机械开关,按下即电路导通,松开即电路断开。由于上拉电阻的存在,因此一般按下时低电平,释放时高电平消抖:由于机械点的弹性作用,按键开关在闭合和断开的瞬间会伴随一连串的抖动,时长由机械特性决定的,一般为5ms-10ms。由于按键抖动会引起按键被误读多次,为了确保CPU对一次按键事件(一次按下和释放),必须消抖硬件消抖:通过添加电容的方式使电压信号更加平稳软件消抖:读取按键状态后,延时10ms再次读取,若两次状态相同才记录读取的状态。

2022-12-27 23:20:32 4259

原创 LED及点阵

LED点阵的使用

2022-12-25 17:21:54 2920

原创 数码管介绍

静态数码管、动态数码管、通过38译码器实现位选的多位数码管

2022-12-22 20:57:30 5837

原创 单片机扫盲

单片机的简单介绍

2022-12-13 00:08:23 4922

原创 通讯方式介绍

RS232和RS485的基本介绍

2022-11-27 21:35:23 390

原创 I2C协议

arm裸机

2022-08-23 23:01:55 579

原创 《矛盾论》

辩证法强调事物之间是联系的、发展、变化的。万事万物时时刻刻都在相互影响不断变化的。变化第一位的原因是事物内部的矛盾性,第二位的原因是事务和其他相互联系相互影响。1. 矛盾的普遍性和特殊性1.1 普遍性万事万物都存在着矛盾,任何事物可以找到一个事物和其对立。1.2 特殊性具体事物在其运动过程及每一矛盾的各个方面都有其特点。不同事物的矛盾各有其特点同一事物的矛盾不同发展阶段和发展过程各有其特点构成事物的诸多矛盾及每一个矛盾的不同方面各有其性质地位和作用1.3 方法论普遍性:积极的接受

2021-10-23 10:41:14 321

原创 【Shell】Shell编程

一、基本语法1. 执行shell脚本通过bash解析器执行,可以直接运行.sh文件sh hello.sh #相对路径sh /home/hello.sh #绝对路径bash hello.shbash /home/hello.sh通过脚本自己执行,需要执行权限chmod +x hello.sh #需要先给shell文件加执行权限./hello.sh #直接调用/home/hello.sh2. 变量2.1 普通变量A=abc # 局部变量export B=20 # 全局变

2021-10-12 16:30:57 109

原创 MySQL常用操作

一、DDL操作1. 操作库1.1 CRUD创建数据库#建库create database mydb1;#建库并设置字符集create database mydb2 character set utf8;#设置字符集并进行类型检查create database mydb3 character set utf8 collate utf8_general_ci;查看数据库#查看数据库show databases;#查看创库语句show create database mydb

2021-10-12 08:10:11 220

原创 系统编程类

一、多线程创建多线程的逻辑步骤创建资源类,在资源类定义属性和操作方法在资源类操作方法进行判断以及逻辑操作创建资源类对象,创建多个线程,使用多个线程调用资源类对象的操作方法1. 新线程1.1 创建新线程继承Thread类Java使用java.lang.Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例定义Thread类的子类,并重写run()方法,run()方法的实现就是新线程的处理逻辑创建新线程类的对象,并调用start()方法启动该线程实现Runnab

2021-09-24 15:20:36 97

原创 泛型与异常

一、泛型1. 泛型类class MyArrayList<E> { //泛型类 public E e; MyArrayList() { //e = "abc"; //报错,因为构造方法尚未确定类型 } public E method(E e) { this.e = e; System.out.println(e); return this.e; }}public class Test

2021-09-23 10:43:55 149

原创 常用集合类

一、Collection类集合:Java中提供的一种容器,可以用来存储多个引用类型的数据。集合与数组的区别:数组的长度是固定的,而集合的长度是可变的。集合存储的都是引用数据类型,若想存储基本数据类型需要存储对应的包装类。1. 概述1.1 简介Collection:单列集合类的根接口,用于存储一些列符合某种规则的元素,其有两个常用的子接口:java.util.List:元素存取有序、有索引、且可重复,主要的实现类:java.util.ArrayList 查询快、增删慢java.ut

2021-09-22 23:38:18 130

原创 常用工具类

一、字符串1. String类1.1 方法构造方法public String() //不含任何字符 public String(char[] chs) public String(byte[] bys) public String(char[] value, int offset, int count) public String(byte[] bytes, int offset, int length)String s = “abc”;常用方法con

2021-09-20 21:30:55 150

原创 C++与JAVA的语法差异

一、差异点1. 规范标准JAVA中的对象都是new出来的,只要创建对象,就会在堆中开辟一块新的空间方法实在栈中执行的,因此只要调用方法,就会在栈区开辟一块空间来执行该方法引用类型(数组,类,接口)传递的时地址值问题点:子类调用父类构造方法的方式有哪些?初始化父类的方式有哪些?public class ClassName{ //成员变量 private //构造方法 //无参构造方法【必须】 //满参构造方法【建议】 //getXxx() //setXxx()

2021-09-05 14:24:35 766

原创 相机的增删改查

一、相机的数据的持久化1. 摄像机数据类型struct XCameraData{ char name[1024] = { 0 }; char url[1024] = { 0 }; char sub_url[1024] = { 0 }; char save_path[1024] = { 0 };}2. 相机数据的增删改查class XCameraConfig{public: //增删改查 bool Push(XCameraData &data); bool Del(i

2021-09-03 19:53:15 94 1

原创 界面UI设计

界面设计分为预览和回放两个模块,本节主要是预览模块。一、替换系统图标1. 替换生成程序图标2. 替换生成界面图标

2021-09-03 19:52:44 1350

原创 八、解封装rtsp及录制视频

1. 用VLC模拟一个rtsp服务器创建rtsp服务器2. 接收rtsp数据

2021-09-03 19:52:01 854

原创 git使用

1. git初始化设置账户git config --global user.name "Jeff1234321" git config --global user.email [email protected] 初始化仓库git init 初始化工作区域git clone https://github.com/Jeff1234321/GitTest.git 直接克隆远程仓库,无需初始化2. 创建分支查看分支git branch 查看本地分支git branch -a 查看

2021-05-26 16:02:11 116

原创 一、FFmpeg简介

一、FFmpeg简介1. ffmpeg/ffplay/ffprobe1.1 概念ffmpeg: Hyper fast Audio and Video encoder 超快音视频编码器ffplay: Simple media player 简单媒体播放器ffprobe: Simple multimedia streams analyzer简单多媒体流分析器1.2 帮助文档ffmpeg◼基本信息:ffmpeg -h◼高级信息:ffmpeg -h long◼所有信息:ffmpeg -h

2021-05-24 22:23:24 6254

原创 vs2019生成动态链接库

封装的原则:隐藏ffmpeg和sdl的实现当只引用其中库中变量和函数的指针,而不使用其内部的实现,就无需引用头文件,只要前面加一下声明即可。1. 动态库与静态库项目会在在win中演示,但终要跨平台.lib和.dll的区别为什么项目使用动态库而非静态库?linux和windows动态库的路径:Linux需要定义查询.so的路径,windows可以自定义路径,也可以直接放在.exe下面2. 动态链接库的生成win要编译成动态库的函数需要加上__declspec__declspec是Micr

2021-05-14 22:48:48 922 1

原创 七. 封装解封装

1. MP4格式分析参考MP4格式分析2. 相关API及数据结构//打开要读取的文件,获得上下文int avformat_open_input( AVFormatContext **ps, //上下文 const char *url, //文件路径 ff_const59 AVInputFormat *fmt, //输入的格式 AVDictionary **options //选项);//获取ic的信息int avformat_find_stream_info(

2021-03-30 19:52:29 186

原创 六、视频解码

1. 相关APIAVCodec *avcodec_find_decoder(enum AVCodecID id)AVCodecContext *avcodec_alloc_context3(const AVCodec *codec)设置上下文时,无需设置参数,因为解码后会根据sps、pps获取int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options)int avcodec_send_p

2021-03-25 17:18:17 108

原创 五、视频编码

1. 视频编码原理视频编码原理,详见音视频开发基础2. AVPacketAVPacket结构体,详见AVpacket结构体3. x264 / x265编码参数设置x264、x265编码器码率控制:ABR、CQB、CBR、CBF、VBV详见码率控制#include <iostream>#include <fstream>extern "C"{#include <libavcodec/avcodec.h>#include <libavutil

2021-03-20 19:16:31 309

原创 四、像素格式转换和多路渲染

1. RGB与YUV格式互转1.1 相关API创建上下文struct SwsContext *sws_getCachedContext( struct SwsContext *context, //转换上下文,NULL新创建,非NULL判断与现有参数是否一致,一致则返回,不一致则重新创建 int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstF

2021-03-16 22:12:19 184

原创 三、AVFrame渲染

目标:AVFrame结构体的成员含义AVFrame的内存分析:引用计数与字节对齐将文件中YUV数据存储到AVFrame中,并将AVFrame中的YUV渲染出来帧率的控制策略方式、精确控制的方式通过多线程控制渲染界面上设置并显示fps的方法。1. AVFrame结构体和相关接口1.1 AVFrame基本介绍AVFrame结构体结构体成员uint8_t *data[AV_NUM_DATA_POINTERS]; AV_NUM_DATA_POINTERS的数值为8实际上data中存放着

2021-03-13 01:42:16 707

原创 二、基于QT_SDL渲染像素格式

本章目标:RGB与YUV的原理SDL渲染图像的方法QT渲染图像的方法SDL与QT结合渲染图像的方法刷新SDL渲染的方式面向对象工厂模式封装方法窗口大小的变化与抗锯齿的处理RGB像素格式原理RGB与YUV像素格式基础1. 渲染RGB像素格式1.1 通过SDL渲染SDL窗口创建SDL的窗口、渲染器、纹理创建RGB图像数据纹理通过渲染器渲染RGB数据到窗口#include <iostream>#include <sdl/SDL.h>using na

2021-03-12 23:14:22 548

原创 一、监控项目

项目技术选型:渲染技术:sdl+qtOpengl重采样时开销较高编解码技术:多线程软解:效率高Android可以采样硬解码,效率高功耗低对于PC机,硬解码与软解码效率差不多,但硬编码开销比较高,一般不用封装和网络格式:mp4 + rtsp界面技术:qt目标:学完不重要,学完后可以优化重构。...

2021-03-12 20:05:05 53

原创 FLV协议分析

FLV = FLV Header + FLV Body1. FLV HeaderFLV Header: 头三个字节为‘F‘ ’L’ ‘V’ 三个字节、版本、类型、偏移2. FLV BodyFLV Body:包括pre tagsize 和 tag2.1 pre tagsizepre tagsize代表了前一个tag的大小,tag代表当前的数据2.2 Tag Header2.3 Tag Body2.3.1 Script Tag DataScript data: MetaData T.

2021-02-27 17:27:12 648

原创 SDL基础

1. 概述SDL将功能分成下列数个子系统(subsystem):◼ SDL_INIT_TIMER:定时器◼ SDL_INIT_AUDIO:音频◼ SDL_INIT_VIDEO:视频◼ SDL_INIT_JOYSTICK:摇杆◼ SDL_INIT_HAPTIC:触摸屏◼ SDL_INIT_GAMECONTROLLER:游戏控制器◼ SDL_INIT_EVENTS:事件◼ SDL_INIT_EVERYTHING:包含上述所有选项音视频主要关注定时器、视频、音频、事件子系统2. window

2021-02-24 21:40:15 458

原创 FFmpeg命令

1. ffmpeg/ffplay/ffprobe区别1.1 概念ffmpeg: Hyper fast Audio and Video encoder 超快音视频编码器ffplay: Simple media player 简单媒体播放器ffprobe: Simple multimedia streams analyzer简单多媒体流分析器1.2 帮助文档ffmpeg◼基本信息:ffmpeg -h◼高级信息:ffmpeg -h long◼所有信息:ffmpeg -h fullf

2021-02-24 16:12:30 2476

空空如也

空空如也

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

TA关注的人

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