自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 51单片机的内核架构组成 & 介绍

对于51单片机相信很多电子信息或者相关专业的朋友应该都不会感觉陌生,很多专业在大学课程中开设的单片机课程就是使用的51单片机进行授课和学习的。

2023-12-10 14:51:40 972

原创 Modbus协议详解5:Modbus数据模型、寄存器、功能码 (非常重要)

Modbus协议最早的应用领域是工业控制中的,那个时候PLC中的使用很多,而且涉及的控制对象又很多是开关、指示灯、信号灯等等的,所以为了控制和表示这一系列的对象,就需要抽象一些数据类型出来专门进行表示。线圈可读可写,还是布尔类型的,它可以表示控制现场的开关,1表示开关的打开,0表示开关的关闭。控制开关的开闭可以这么表示,同样的读取回来的值也可以表示开关的开闭状态。看着还挺让人奇怪的。Modbus是应用层上的协议,还是一种主从的通信协议,通信过程按照一定的协议规则进行,数据的交互也是有固定的格式的。

2023-10-29 11:29:32 2965

原创 Modbus协议详解4:RTU帧 & ASCII帧的差错校验

纵向冗余校验(LRC)为一个字节,含有8位二进制值。LRC由发送设备计算,并附加LRC到报文。接收设备在接收文时计算LRC,并将计算的结果与在LRC接收到的实际值相比较,如果两个值不相等,则结果为错。

2023-10-24 22:43:51 956

原创 Modbus协议详解3:数据帧格式 - RTU帧 & ASCII帧的区别

在项目应用中,很多时候多报文帧的接收都会涉及到中断,特别是在通信速率很高的情况下,会频繁的快速中断,对cpu的负担是很重的,这个时候这t1.5和t3.5的时间就会变得很短暂,并不是很好处理。在RTU模式中,为了标识不同的报文帧,在报文帧之间插入一个空闲时间间隔,在两帧报文之间用至少3.5个字符的空闲时间来区分不同的帧,同时标识一帧是否已经完成接收。

2023-09-17 13:01:46 5054 2

原创 Modbus协议详解2:通信方式、地址规则、主从机通信状态

Modbus是一种串行链路上的主从协议,在通信线路上只能有一个主机存在,不会有多主机存在的情况。虽然主机只有一个,但是从机是可以有多个的。

2023-09-06 22:42:38 4059

原创 Modbus协议详解1:Modbus的简介

早在1979年出现工业串行链路以来,Modbus的应用就开始普遍起来,它使得各种自动化设备之间的互相通信得到实现,做嵌入式产品开发的朋友应该不会陌生,Modbus的身影是随处可见的。并且在中国Modbus都已经形成了规范的标准,都有相应的国标的文件可以查阅到的。

2023-08-27 12:23:29 449

原创 PID控制的总结 — 概念与参数整定

对于这个PID参数的整定,我个人认为没什么一步到位的好方法,针对不同的系统,同样的控制算法,参数都不会一样的,还要根据实际的情况去调节。

2023-08-06 19:27:29 1550

原创 ubuntu与windows之间的文件共享

综合上述的三种方式,我觉得第三种方式其实更加方便,前面的两种都需要网络的支持,第三种就不需要网络也行。由于在ubuntu中安装source insight比较麻烦,这个软件本身也没有linux版本的,但是我又想ubuntu中的代码可以在windows中打开来阅读和编写,那怎么办呢?这部分的操作基本都差不多,就是客户端上输入ubuntu的主机IP地址,如果不知道IP是多少,可以在终端输入指令进行查询。输入账户名后会提示你输入密码的。然后输入ubuntu主机的用户名,注意这个用户名的输入,看下面的图示。

2023-07-23 13:40:00 9499

原创 PID算法:标准PID算法的一些改进措施

如果积分饱和了,在系统的偏差方向发生了改变了之后,PID这个时候会起作用进行调节,但是由于积分项太大了,就需要经过比较长的时间才能让输出U(n) 从积分饱和区脱离,会使调控作用滞后,让系统出现明显的超调,整个系统的调节效果会变差,这肯定是不希望出现的。这就是积分不灵敏的情况。积分限幅法的操作原理是:对积分项的输出设定一个限制,当积分项的输出达到限制,就停止积分项的计算,PID算法中的积分计算项的值采用上一个时刻的积分值。相反,当系统的偏差比较小的时候,让积分的速度快一些,以求尽快的消除静差。

2023-07-16 18:59:01 2647

原创 串口接收不定长数据的实现

使用串口进行数据的收发在嵌入式产品中是很常用的一种通信方式,因为串口的简单使用,很容易就被选为产品中数据交互的通信手段。

2023-07-02 12:46:07 1956

原创 PID算法:过程控制中的重要质量指标

PID算法广泛的被应用在很多的控制系统中,最终的目的都是希望通过pid控制器实现被控量能稳定在预期的目标值。

2023-06-15 23:05:24 1677

原创 PID算法:增量式PID & 位置式PID

一般而言,计算机实现PID算法的时候,在采样周期很小的时候,积分部分可以用对误差求和的方式代替,微分部分可以用差商的方式代替,从而实现将连续的PID算法的差分方程进行离散化,能够通过计算机实现。数字PID:指的是PID控制算法的实现是通过计算机软件程序实现的,计算机需要对输入的连续信号进行采集,然后通过量化作为控制器的输入参数,从而经过算法的调节实现目标对象的控制。图中的模拟调节器的意思就是控制规律的方案是通过模拟硬件的方式来实现的,如果想要调整系统的控制规律就需要修改调节器的硬件。

2023-06-10 13:32:32 10077 1

原创 freeRTOS中使用看门狗的一点思考

关于看门狗想必各位嵌入式软件开发的朋友应该都不会陌生的。在嵌入式软件开发中,看门狗常被用于监测cpu的程序是否正常在运行,如果cpu程序运行异常会由看门狗在达到设定的阈值时触发复位,从而让整个cpu复位重新开始运行。

2023-05-07 23:03:58 2582

原创 SG90舵机的原理和控制方式

舵机只是我们通俗的叫法,它的本质是一个伺服电机,也可以叫做位置(角度)伺服驱动器。一般被应用在那些需要控制角度变化的系统中,可以方便的实现转动任意的角度,实现控制角度的变化。

2023-03-23 23:26:15 20973

转载 一些常用的通信协议的原理动态演示

分享一些常见通信的底层数据传输原理的动态显示,方便理解原理的实现!

2023-03-18 21:42:46 342

原创 排序算法之选择排序

选择排序是一种比较直观和简单的排序算法,它和冒泡排序算法都是很经典,很常用的排序算法。

2023-03-17 22:44:24 123

原创 排序算法 - 冒泡排序

冒泡排序算法应该可以说是很经典的一种对数据进行排序的的算法了,甚至在很多的介绍算法的数据中,它可能还是放在最前面开始讲解的。

2023-03-13 13:43:06 917

原创 linux多线程的同步手段 — 条件变量

有没有这样的一种方式,在某个条件没有成立的时候,这个线程平时就被阻塞挂起,等到这个条件成立了,通知一下这个线程条件已经成立了,可以去执行相关的操作了。

2023-03-10 23:33:36 591

原创 ucos-ii 的任务调度原理和实现

ucosii 的任务控制块是任务中很重要,它记录了任务的信息,包括优先级、延时时间、状态等信息。

2023-02-12 13:56:22 2169

原创 linux 中的压缩和解压操作

在开发中,很多时候会遇到某些文件要进行压缩的操作,比如文件较大不方便传输的时候,可能会考虑对文件进行压缩,以减少文件传输的时间。

2023-02-03 21:46:29 1949

原创 大小端是什么?如何判别?

在计算机系统中,内存的最小存放单元是字节,即一个地址对应一个字节,可以保存一个字节(8Bit)的数据,但是在计算机系统中又不可能全部都是一个字节的存储方式,还有一些8位、16位、32位的系统,它们还会有2个字节、4个字节的变量。

2023-02-02 15:49:54 2759

原创 嵌入式开发中一些需要留意的地方

分享一些嵌入式开发中的C语言用法

2023-02-01 10:58:36 1677

原创 有关BMP位图的分析

BMP是Bitmap(位图)的简称,是windows显示图片的基本格式。

2023-01-24 15:45:46 1455

原创 关于ARM的向量中断控制器NVIC

NVIC向量中断控制器是ARM不可分离的部分,搭配着内核共同完成着对中断的响应。

2023-01-22 09:28:44 2517

原创 总结几个常用的Git命令的使用方法

使用Git过程中最常用到的Git命令,也简单分享一些Git的使用流程

2023-01-11 21:55:24 1341 1

原创 有关文件IO操作的错误(error)提示

文件IO操作时的一些错误提示,通过函数的调用之后的返回值去查找对应的问题。

2022-12-30 16:20:21 1240

原创 有关linux中的文件IO的操作

linux中一切皆文件,文件是linux系统的核心设计思想,所以掌握文件的操作是很重要的。

2022-12-26 09:51:02 2004

原创 Ubuntu中使用gcc/g++编译C/C++

想要在linux环境中编译C语言,安装编译工具也是一样可以对C语言进行编译的

2022-12-14 17:03:13 5089

原创 STM32的最小系统组成的详解

STM32单片机的最小系统的详细介绍!

2022-12-10 11:30:29 5809

原创 使用MobaXterm远程登录linux主机

通过远程登录的方式去登录linux,实现控制和读写等操作。

2022-11-26 14:42:11 1174

原创 开启linux的网络服务, FTP、SSH和NFS服务

在使用linux中开发的时候,我们可以选择启用一些网络服务方便我们进行开发,加快开发的进度。(

2022-11-20 22:51:43 666 2

原创 模拟滤波器和经典的低通滤波器

模拟滤波的实现通常都是使用电容、电感、电阻之类的电子元器件搭建的电路来组成硬件滤波电路,以此进行杂波滤除的方法。

2022-11-12 21:00:42 2480

原创 面试必考 - 结构体内存对齐,还有人不会?

定义的变量(元素)是要按照顺序一个一个放到内存中去的,它们也不一定就是紧密排列的,是要按照一定的规则就行排放的,这就是内存对齐。

2022-11-06 17:47:33 488

原创 在线升级:OTA升级的原理和实现方式

通过无线的方式进行更新的才称之为 OTA 升级;而那种通过外部的接口接线来实现的更新,称之为本地升级。

2022-11-05 17:27:23 13465 3

原创 如何设置STM32的系统时钟(SYSCLK)

在使用STM32单片机进行项目开发的时候,第一步都是要做好时钟的设置的。这个时钟的设置是非常重要的,因为它关系到整个系统的运行。不同的项目都会根据实际的使用需求,采用不同的时钟频率,所以需要对时钟进行设置。

2022-11-04 21:21:23 8323

原创 单片机中的 AD & DA 模数转换

在芯片内,模拟信号传输进去的时候,通过和芯片内部的模拟信号部件进行比对之后,从而转换为数字信号保存到数字信号寄存器中,从而把一段模拟信号用数字的方式表达出来(0和1)的方式表达出来。一旦校准结束,CAL位被硬件复位,可以开始正常转换。

2022-10-30 15:22:19 2842

原创 Git管理 — 分支管理

分支管理指的是从当前主分支(master)中创建分支(branch),然后每个人负责在自己的分支上进行开发、提交,最后所有功能都开发完成之后,再合并到主分支。

2022-10-21 16:57:29 1235

原创 数据结构 — 双向链表

双向链表的最大便利之处在于查询链表时不仅可以正向查找也可以反向查找,甚至如果当前查询的位置在链表中间的位置的时候,可以反方向两头查找,提高查找的速度和效率。

2022-09-28 15:39:59 323

原创 数据结构 — 单向链表

链表是编程语言中常见的一种数据结构,它可以实现动态的创建和删除,只要内存足够,链表的数量和长度是可以无限多和无限长的。

2022-09-27 14:40:11 491

原创 STM32单片机的 Hard-Fault 硬件错误问题追踪与分析

有过单片机开发经验的人应该都会遇到过硬件错误(Hard-Fault)的问题,对于这样的问题,有些问题比较容易查找,有些就查找起来很麻烦,甚至可能很久都找不到问题到底是出在哪里。

2022-09-23 15:50:48 6278

空空如也

空空如也

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

TA关注的人

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