自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32项目开发-IIC总线

IIC通讯协议(Inter----Integrted Circuit)是由Phiips飞利浦公司开发的, 由于他引脚少,硬件实现简单,可拓展性强,不需要UASRT,CAN通讯协议的外部收发设备,现在被广泛使用在系统内多个集成电路IC(芯片)间的通讯。半双工的通讯方式。OLED即有机发光管(Organic Light-Emitting Diode,OLED)。

2025-04-16 20:32:07 584

原创 定时器TIM

1定时器基础知识。

2025-04-01 10:24:26 671

原创 手机蓝牙项目

蓝牙模块RXD接收端接单片机PA2。蓝牙模块TXD接收端接单片机PA3。蓝牙模块CND接单片机GND。输入1时灯亮,并打印在电脑。蓝牙模块VCC接单片机5V。输入0时灯灭,并打印在电脑。

2025-03-27 16:58:30 422

原创 串口USART

在绝大多数场合下,发送端和接收端,采用的都是同一个时钟,所以在传送数据的同时还要 发送时钟信号,以便接收端可以使用时钟信号来确定每一个信息位。同步是指在约定的通信速率下,发送端和接收端的时钟信号和相位始终保持一致,保证通信 双方在发送和接收数据时具有完全一致的定时关系。字符帧也叫做数据帧,由起始位,数据位,奇偶校验位,停止位等部分组成,是异步通信的 一个重要指标。在嵌入式中,有众多的通信协议,往往从性能,成本,稳定性,易用性等角度考虑选择合。

2025-03-26 21:57:59 806

原创 STM32外部中断EXTI

weak:弱定义,如果用户没有自己定义的中断函数,则系统默认执行系统自定义的中断函数,如果用户有定义中断函数则优先执行用户的中断函数。重映射属于复用功能的另外一个功能,可以把具有特殊功能的引脚,分配到其他引脚上去。如果某个功能被重映射了,那么这个功能将不再遵循其默认的默认分配。初始化NVIC嵌套中断控制器及分组。,但是它还可以被复用成其他功能,我。处理器的引脚本身默认就是一个普通的。屏蔽中断寄存器或事件寄存器。们称之为一个引脚的复用功能。第三步,配置中断屏蔽寄存器。第二布,配置复用寄存器。

2025-03-21 17:30:22 312

原创 STM32基本GPIO控制

GPIO(General-Purpose input/output,通用输入/输出接口)用于感知外部信号(输入模式)和控制外部设备(输出模式)简单模块:LED,按键,蜂鸣器,温度传感器,使用一个GPIO就可以完成数据的传输/ 控制复杂一点的模块OLEDFLASH,六轴传感器需要多个引脚组成协议传输数据,USART,IIC,SPI等协议MCU单片机大都采用引脚复用模式也就是一个GPIO,可以直接控制它输出高低电平,也可以设置为某个协议的引脚之一。此外,一些MCU。

2025-03-21 10:42:49 1036

原创 RV1126+FFMPEG多路码流监控项目

本项目采用的是易百纳RV1126开发板和CMOS摄像头,使用的推流框架是FFMPEG开源项目。这个项目的工作流程如下(如上图):通过采集摄像头的VI模块,再通过硬件编码VENC模块进行H264/H265的编码压缩,并把压缩后的数据通过FFMPEG传输到两个流媒体服务器(如同时推送到流媒体服务器:rtmp://xxx.xxx.xx.xxx:1935/live/01和rtmp://xxx.xxx.xx.xxx:1935/live/02)。

2025-03-07 11:34:08 1030

原创 通过多线程获取RV1126的AAC码流

上面是RV1126多线程获取AAC码流的流程,分为六步:AI模块的初始化并使能、AENC模块的初始化、绑定AI模块和AENC模块、创建多线程获取AAC码流、、写入具体每一帧AAC的ES码流。

2025-03-04 11:14:11 776 1

原创 3.多线程获取音频AI的PCM数据

RV1126多线程采集AI模块的数据,一般分为三个步骤:分别是初始化AI模块、启动AI模块开启采集、开启多线程采集AI数据并保存到本地。AI模块的初始化实际上就是对的参数进行设置、然后调用设置AI模块并使能设置完上面的AI模块后,就要开启AI模块的工作,使用的API是开启一个线程去采集每一帧VI模块的数据,使用的API是模块ID是RK_ID_AI,通道号ID是AI创建的通道ID号这个API的具体作用已经在之前的获取AI数据:while(1)mb =

2025-03-04 10:41:15 1313

原创 RV1126的OSD模块和SDL_TTF结合输出H264文件

用RV1126多线程输出OSD叠加需要经过上面几个重要步骤,分别是VI模块初始化、VENC模块初始化、RGN模块初始化、多线程进行OSD字库的叠加(里面主要是进行字库的渲染和RV1126的OSD模块叠加)、多线程获取每一帧OSD处理过后的编码数据。上面是OSD叠加的代码,主要是通过RV1126的RNG模块对VENC进行OSD进行字库叠加。VENC模块的初始化实际上就是对VENC_CHN_ATTR_S的参数进行设置、然后调用。指的是输入的数值,align是要对齐的数值。这里是设置VENC的属性。

2025-03-03 21:54:09 728

原创 利用SDL_TTF库渲染文字并保存

上面是SDL_TTF输出文字图层的几个重点步骤,分别是ttf_init初始化、TTF_OpenFont打开字符库、TTF_RenderUTF8_Solid渲染字体、填充SDL_PixelFormat信息、SDL_ConvertSurface进行像素转换。第三个参数:字体颜色的设置,用SDL_Color进行设置,这个结构体分别是r、g、b三种颜色进行设置,这里的rgb都是用16进制表示。它的作用是打开字体库,同时设置字体的大小,我们来看看它的传参。它的作用是初始化TTF的库,是做SDL_TTF渲染的第一步。

2025-03-03 21:21:23 922

原创 RV1126多线程获取SMARTP的GOP模式数据和普通GOP模式数据

RV1126利用多线程同时获取普通GOP的VENC码流数据和SMARTP的码流数据一般如上图,分为8个步骤:分别是VI模块初始化、普通GOP的VENC模块初始化、智能SMARTP_GOP的VENC模块初始化、VI绑定普通GOP的VENC编码器节点、设置GOP属性为SMARTP属性、VI绑定SMARTP_GOP的VENC编码器节点、创建多线程获取普通GOP的VENC码流数据并保存、创建多线程获取SMART_GOP的VENC码流数据并保存。开启一个线程去采集每一帧普通GOP的VENC模块数据,使用的API是。

2025-03-03 21:07:20 975

原创 通过多线程同时获取H264和H265码流

RV1126利用多线程同时获取H264文件、H265文件的过程一般分为上图的7步骤,分别是:VI模块的初始化、H264的VENC模块初始化、H265的VENC模块初始化、VI绑定H264的VENC模块、VI绑定H265的VENC模块,开启H264线程获取H264码流并保存、开启H265线程获取H265码流并保存。

2025-03-03 17:03:09 1184

原创 通过多线程分别获取高分辨率和低分辨率的H264码流

这段代码的核心是输入图像(输入分辨率是原分辨率和VI模块一致)和输出分辨率(输出分辨率是自己设置的分辨率)的设置。,比方说VI模块的数据传输到VENC模块,那么目的模块就是VENC,ID号就是RK_ID_VENC;比方说VI模块的数据传输到RGA模块,那么目的模块就是RGA,ID号就是RK_ID_RGA。模块ID是RK_ID_RGA,通道号ID是RGA的通道ID,采集完每一帧RGA数据则使用。模块ID是RK_ID_VENC,通道号ID是低分辨率VENC创建的ID号。这里是设置VI的属性。

2025-03-03 16:49:56 742

原创 RV1126视频编码增强模块:RV1126的QP代码实战

RV1126利用多线程同时获取普通VENC数据和QP量化的VENC数据,需要上面8个步骤,分别是:VI模块的初始化、普通VENC模块的初始化、量化QP的VENC模块的初始化、绑定VI模块和普通VENC模块、设置QP的VENC模块QP量化参数、绑定VI模块和QP量化VENC模块、多线程获取每一帧普通VENC编码数据、多线程获取每一帧QP量化后VENC模块的数据。

2025-03-03 16:35:49 789

原创 通过多线程获取VENC的H264码流数据

通过H264的VBR模式获取H264码流。

2024-12-04 15:55:13 501

原创 获取RGA数据并保存

/设置VI通道属性。

2024-11-28 09:50:39 401

原创 通过多线程获取VI模块的YUV数据

quit=true;while(!quit)if(!mb)break;int ret;if(ret)return -1;elseif(ret)return -1;elseif(ret)elsewhile(!quit)sleep(1);return 0;

2024-11-27 14:51:13 497

原创 FTP云盘项目

程序运行,服务端不断接收客户端指令,服务端可同时处理多个客户端接入并对指令作出解析,并把执行结果返回给客户端,客户端根据服务端对指令的解析并把由服务端传递过来的处理信息通过客户端呈现给客户,实现文件的各种操作。服务器,服务器由服务端和客户端组成,具有浏览远程服务端的文件和浏览客户端本地文件,同时支持对远程服务端文件的删除,存储,归档操作处理,以及客户端对远程服务端文件的上传和下载。get /put -------------获取服务器数据 /上传数据 给服务器。lls ----->查看客户端文件。

2024-11-04 15:50:29 751

原创 嵌入式数据库

插入部分字段记录 insert into stu(name,score) values(1002,'lisi');公司是最早开发关系数据库的厂商之一,其技术支持最广泛的操作系统平台。数据库是在数据库管理系统和控制之下,存放在存储介质上的数据集合。中并没有数据库服务器的概念,它的程序直接链接到应用程序中。f_value:包含每个字段值的指针数组。f_name:包含每个字段名称的指针数组。ncolumn:每条记录包含的字段数目。ncolumn:每条记录包含的字段数目。3.将新的表的名字改成原有的表名字。

2024-11-01 16:59:11 670

原创 六.Linux网络编程

早期的ARPAnet使用网络控制协议,不能互联不同类型的计算机和不同类型的操作系统,没有纠错功能。SCTP:(Stream Control Transmission Protocol:流控制传输协议),TCP的增强版,他能实。函数用于从完成连接的队列中取出下一个连接请求,如果队列为空,它会阻塞调用进程直到有连接请求。数据被看作式字节流,无长度限制。提供了一个面向连接,可靠的数据传输服务,数据无差错,无重复的发送顺序接收。提供无连接服务器,数据包以独立数据包的形式被发送,不提供无差错保证,数据可能。

2024-10-18 21:48:56 1891

原创 Linux线程

const pthread_attr_t *attr, //线程属性,NULL。void *(*start_routine)(void *), //线程处理函数。函数原型:int pthread_create( pthread_t *thread, //线程ID =创建出的新会话会丢弃原有的控制终端。创建会话的进程成为新进程组的组长。进程组的ID==进程中的组长的。进程组的ID就是组长的进程。有些lInux版本需要。pthread:要回收的子线程的。

2024-10-10 22:13:43 1348

原创 四.进程间的通信

cmd: IPC_STAT:把msgid_ds结构中的数据设置为消息队列的当前关联值,即用消息队列的当前关联值覆盖msgid_ds。IPC_SET:如果进程有足够的权限,就把消息列队的当前关联值设置为msgid_ds结构中给出的值。因为标准输入、标准输出、标准错误输出分别对应的文件描述符为0,1,2,所以这里的读和写就是3,4.msgflg:是一个权限标志,表示消息队列的访问权限,它与文件的访问权限一样。消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级。

2024-09-25 21:45:27 467

原创 Linux进程

当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。其实决定并行的因素不是CPU的数量,而是CPU的核心数量,比如一个CPU多个核也可以并行。否则,看似同时发生的事情,其实都是并发执行的。进程基本的状态有五种,分别为初始态,就绪态,运行态,挂起态和终止态。并行,指的是多个事情,在同一时间点上同时发生了。进程的状态,有就绪,运行,挂起,停止等状态。并行的多个任务之间是不互相抢占资源的。

2024-09-19 22:27:01 325

原创 Linux文件

linux标准文件描述符文件IO:是直接调用内核提供的系统调用函数头文件是unistd.h标准IO:是间接调用系统调用函数,头文件是: stdio.h1.我们的程序中的缓存,就是你想从内核读写的缓存(数组)----用户空间的缓存2.每打开一个文件,内核在内核空间中也会开辟一块缓存,这个叫内核空间的缓存文件IO中的写即是将用户空间中的缓存写到内核空间的缓存中。文件IO中的读即是将内核空间的缓存写到用户空间中的缓存中。3.标准IO。

2024-09-18 22:50:47 1864

原创 Linux文件

Linux文件函数介绍

2024-09-11 11:30:44 818 2

空空如也

空空如也

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

TA关注的人

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