- 博客(90)
- 资源 (2)
- 收藏
- 关注
原创 【嵌入式软件】LWIP 以太网通信
1)应用层:为上层用户提供应用的接口。常用的应用层的网络协议有:HTTP、FTP、TFTP、SMTP、SNMP、DNS、TELNET、HTTPS、POP3、DHCP2)表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩/解压缩和加密/解密(提供网络的安全性)也是表示层可提供的功能之一。
2024-04-28 11:22:45 45
原创 【嵌入式硬件】三极管伏安特性曲线-饱和区
三极管工作电路如下图所示。三极管伏安特性曲线书本上的描述:截止区:三极管工作在截止状态,当发射结的电压Ube导通电压(0.6V-0.7V),发射结没有导通;集电结处于反向偏置,没有放大作用。放大区:三极管的发射极加正向电压(锗管约为0.3V,硅管约为0.7V),集电极加反向电压导通后,Ib控制Ic,Ic与Ib近似于线性关系。饱和区:当三极管的集电结电流Ic增大到一定程度时,再增大Ib,Ic也不会增大,超出了放大区,进入了饱和区。
2024-04-02 14:45:47 376
原创 【嵌入式硬件】步进电机
1)通电方式单极性,同相绕组两个引脚分别供电,改变磁场;双极性,同相绕组两个引脚改变通电方向,改变磁场;2)绕组结构实现相同的功能,单极性比双极性多需要1倍绕组;1)特点反应式:结构简单,生产成本低,步距角小。但因反应式步进电机不使用永久磁铁,其定转子磁场强度与激磁电流成正比,要想增大磁场强度,就需要很大的激磁电流,因此温升很高,散热片也很大,并且动态性能差,效率低,可靠性差。永磁式:永磁式步进电机输出力矩大,动态性能好,但步距角大。混合式:步距角小、输出力矩大、动态性能好。但结构复杂,成本较高。
2024-03-21 16:22:09 2411
原创 【嵌入式】CAN总线
CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。
2024-02-20 23:02:55 87
原创 【嵌入式】ADC(模数转换器)
模数转换器:A/D 转换的作用是将时间连续、幅值连续的模拟信号转换成时间离散、幅值离散的数字信号。A/D 转换一般要经过取样、保持、量化、编码 4 个过程。在实际电路中,取样和保持、量化和编码往往同步实现。其原理框图如下图所示。输入模拟电压信号VI经采样电路、保持电路输入到模数转换器,模数转换器将输入信号经过量化和编码过程输出为n位数字信号D(Dn-1 Dn-2 ...D2 D1 D0)。Vi:输入;Vref:参考电压;K:比例系数;每个ADC都不一样,根据硬件不同。
2024-02-17 18:02:18 334
原创 【嵌入式】通信接口(IIC/UART/SPI/RS232/RS485/CAN/)
1)串行、半双工通信;2)IIC 由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。3)通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。4)在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。I2C通信方式为半双工,只有一根SDA线,同一时间只可以单向通信,485也为半双工,SPI和uart为双工。起始条件:当SCL为高电平的时候,SDA线上由高到低的跳变被定义为起始条件。
2024-02-14 21:23:13 214
原创 【图像处理】音视频色彩:RGB/YUV
RGB是一种颜色标准,指的是R(red)红色、G(green)绿色、B(blue)蓝色这三种颜色,所有的颜色是通过对这三种颜色通道的变化以及相互之间的叠加来得到的,是目前运用最广的颜色系统之一。1)YUV是指亮度参量和色度参量分开表示的像素格式.其中“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
2024-02-07 14:24:05 1647
原创 zlib交叉编译(rv1126)
1)解压到某个文件夹,新建 install-rv1126文件夹。这篇文章的3.1小节 5)作了介绍。如何找到交叉编译器位置。1)导出交叉编译器环境变量。2)下载tar.gz版本。
2024-02-04 16:18:52 168
原创 【底层编译】Cmake1:语法
1)介绍命令中多个参数之间使用空格进行分隔,而 cmake会将双引号引起来的内容作为一个整体,当它当成一个参数,假如你的参数中有空格(空格是参数的一部分),那么就可以使用双引号。2)例子第一个 message 命令传入了两个参数,而第二个message命令只传入一个参数;在第一个 message 命令中,打印信息时,会将两个独立的字符串Hello和 World 都打印出来,而且World 会紧跟在Hello 之后。而第二个 message命令只有一个参数。
2024-02-02 14:01:28 1167
原创 【底层编译】Cmake3:常用变量
1)介绍PROJECT_SOURCE_DIR变量表示工程的顶级目录,也就是顶层文件所在目录;PROJECT_BINARY_DIR变量表示工程的BINARY_DIR,也 就是顶层源码对应的BINARY_DIR(输出文件目录),camke命令所在文件夹。2)例子目录结构执行结果。
2024-02-02 10:35:49 832
原创 linux指令:mv(移动文件)
在Linux中,可以使用。表示要移动的文件或者目录的原始位置,而。举个例子,我们想将名为。则表示将文件或目录移动到的新位置。的文件从当前工作目录移动到。
2024-01-30 11:33:01 432
原创 【底层编译】Cmake2:语法+常用命令
1)作用:将一个目录中的添加到一个中。2)变量:(1)dir:要搜索源文件的目录名称(2)variable:变量,用于存储找到的源文件列表函数会搜索指定目录(dir)下的所有源文件,并将它们的文件名(包括路径)存储在变量variable中。这个函数会自动将所有符合条件的源文件添加到变量中,所以不需要手动一个一个地列举所有的源文件。4)举例将common文件夹下面所有源文件的文件名(包括路径)存储在变量variable中。
2024-01-29 11:45:58 846
原创 linux指令:grep(查找内容)
擅长单纯查找符合文本要求的内容。grep来自于英文词组“global search regular expression and print out the line”的缩写,意思是用于全面搜索的正则表达式,并将结果输出。
2024-01-24 14:13:43 404
原创 正点原子RV1126:编译自己rkmedia代码(以rkmedia_vi_venc_rtsp_test为模板)
代码所在目录源码/external/rkmedia/examples/rkmedia_vi_venc_rtsp_test.c。
2024-01-23 16:38:14 679
原创 正点原子RV1126SDK包使用
使用build.sh脚本来控制整个SDK包的编译、打包镜像,可以使用 -h 或者 help 来查看支持哪些参数。build.sh参数说明例子选择板级的配置文件lunch列出支持的板级配置文件,再选择板级的配置文件uboot编译ubootkernel编译kernelmodules编译内核模块rootfs编译文件系统recovery编译recoveryall编译整个SDK模块代码包cleanall清除整个SDK包firmware打包系统镜像updateimg打包。
2024-01-23 10:50:40 1198
原创 正点原子imx6ull拷贝:通过SCP命令,实现Ubuntu和开发板拷贝
2)root:为用户名,开发板默认的就是 root 用户,拥有最高权限。5): :这里要加一个英文字符的“:”,不要忘记了!test:要传输的文件。要传输到开发板的路径。
2024-01-17 15:24:41 536
原创 正点原子imx6ull打印:random:nonblocking pool is initialized
开发板启动进入文件系统后,经常打印 random: nonblocking pool is initialized。
2024-01-17 13:57:37 854
原创 Linux基础知识-linux系统组成
linux中的根文件系统更像是一个文件夹或者目录,在这个文件夹或者目录中有很多子文件夹或者子目录。在这些子文件夹或者子目录中会存在很多文件,这些文件是linux运行所必须的。比如库、常用的软件和命令、设备文件、配置文件等等。根文件系统是linux内核启动以后挂载的第一个文件系统,然后从根文件系统中读取初始化脚本,比如rcS、inittab等等。如果不提供根文件系统,linux内核会报内核崩溃错误。根文件系统是其他文件系统的根,没有这个 “根”,其他的文件系统或者软件不能工作。
2024-01-15 15:52:10 866
原创 【嵌入式硬件】步进电机丢步原因分析、解决方案
1)改变方向时丢脉冲,表现为往任何一个方向都准,但一改变方向就累计偏差,并且次数越多偏得越多;2)启动速度太高,加速度太大,引起丢步;3)在用同步带的场合软件补偿太多或太少;4)步进电动机本身的工作转矩不足,没有足够的能力来驱动负载;5)控制器受干扰引起误动作;6)驱动器受干扰引起;7) 软件缺陷;
2023-12-19 15:32:05 510
原创 【导波雷达物位计】基本理论
把信号以电磁波的形式从一端送到另一端的互联结构称为传输线,如 PCB上的走线、双绞线、同轴电缆等。对于上升时间极短的信号,高频分量比重大,需要考虑互联结构中寄生电容、电感等效应。例如传输线中纳秒、皮秒高速脉冲的频谱极宽、波长极短,不能忽略分布电容 C、分布电感L的效应。实际的传输线会出现信号能量损耗,主要有阻性损耗、介质损耗、反射损耗、耦合到邻近线损耗、对外辐射能量。综上,有损耗传输线模型如下,称为RLGC模型,Rz是反映阻性损耗 的电阻元件,Gz是反映介质损耗的电导元件。
2023-12-17 13:01:51 829
原创 rv1126开发板运行程序报错-/usr/lib/libstdc++.so.6: no version information available (required by..
删除“libstdc++.so.6”动态库,包含软件链接。复制交叉编译工具中对就的动态库至arm板,包含软链接。arm中的动态库版本低于交叉编译工具的动态库版本。3)C++动态库如何升级?
2023-12-14 21:26:52 640
原创 正电原子RV1126设置静态IP地址
如果重启不生效,发现修改的东西没了需要检查输入的对不对。2)把前面临时配置ip地址的两行命令写到里面。1.临时设置ip地址(重启开发板失效)2.永久设置ip地址。
2023-12-14 21:19:27 586
原创 【嵌入式硬件】MOS管
MOS管是一个四端器件,具有源极 (S)、漏极 (D) 和栅极端子 (G) 和体 (B) 端子。在栅源短接,漏-源额定电压(VDSS)是指漏-源未发生雪崩击穿前所能施加的最大电压。该参数是指设计中,实际通过mos管的电流与漏源两端的电压差值乘积,不应大于该值。所以该值的很大程度取决于mos管中实际流过的电流值。可以持续承受的电流值,在设计中,产品的实际通过电流值应远小于该值,至少应小于1/3以下。阈值电压是指当控制栅极电压达到一定数值时,MOS管开始导通的电压。(3)漏源电压(Vdss)
2023-12-14 16:03:41 325
原创 【嵌入式硬件】TMC5160说明书
1)线圈电流最大20A(外部MOSFET);2)带SixPoint斜坡 的运动控制;3)带有 微步插值MicroPlyer 的步进/方向 接口;4)电压范围8-60V DC;5)SPI和单线UART;6)编码器接口 、2个参考开关输入;7)最高分辨率 256微步/全步;8)提供安静的操作和平稳的运动;9)中频谐振的谐振阻尼;10)高动态电机控制斩波器;11)负载相关速度控制;12)高精度无传感器电机负载检测;13)电流控制可实现高达75%的节能;14)被动制动和自由滑行模式;
2023-12-14 14:34:45 1912
原创 关于指针作为函数参数的问题(即pthread_mutex_t * mMutex 错误)
最近在学习linux,使用到了多线程、线程池。涉及到线程锁,发现别人都是而我个人觉得这样太麻烦,既然传递的都是指针,为什么不直接创建指针。于是这么写不出意外的意外,出错了。“段错误”。傻了,这是空指针。
2023-12-07 22:19:56 395
原创 【linux】线程池(Linux +C)
(1)使用线程池之后,将任务和线程分离,建立一定数量的线程,使线程重复利用(不销毁),不断将任务添加到线程中。(c)创建任务队列(task类型):pool->taskQ = (Task*)malloc(sizeof(Task) * queueSize);(2)根据任务数量增减,自动添加或者减少线程,使得线程维持在最优数量,节约系统资源。(a)通过线程池提供的api函数,将待处理的任务添加到任务队列,或者从任务队列删除;(c)线程池的使用者,也就是调用线程池函数往任务队列中添加任务的线程就是生产者线程。
2023-12-04 13:53:22 883
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人