- 博客(96)
- 收藏
- 关注
原创 CANopen 中的各种报文详解与应用
CANopen协议的报文,该协议所涉及的报文类型较多,每种报文都有必要深入了解,以后应用该协议时才能得心应手
2025-07-22 10:00:00
608
原创 STM32CUBEMX 使用 9 — ADC实现单片机内部温度测量
STM32 内部有一个温度传感器,可以用来测量 CPU 及周围的温度。这个温度传感器会产生随温度线性变化的电压,转换的电压范围在 2~3.6V之间。
2025-07-09 18:00:10
938
原创 STM32CUBEMX 使用 8 — ADC配置、ADC采样电压
ADC - 模拟数字转换器,英文 Analog-to-digital converter,可以将外部的模拟信号转换为数字信号。
2025-07-03 11:25:24
1356
原创 STM32CUBEMX 使用 7 — PWM输出、周期、占空比调节
PWM - 脉冲宽度调制,英文“Pulse Width Modulation”,简称脉宽调制,是利用 MCU 的数字输出来对模拟电路进行控制的一种非常常见的技术。
2025-07-02 11:03:22
1174
原创 STM32CUBEMX 使用教程6 — TIM 定时器配置、定时中断
定时器的本质就是一个计数器,通过在一定的计数频率下计量一定的装载值实现计数定时的功能。
2025-06-30 16:01:43
1418
原创 STM32CUBEMX 使用教程5 — DMA配置 & 串口结合DMA实现数据搬运
DMA(Direct Memory Access),直接存储器访问(或数据搬运),是STM32中很实用的一个外设。DMA 传输数据方式不需要 CPU 参与控制传输,也不用中断处理的方式进行数据搬运处理,纯粹通过硬件为 RAM 与 I/O 设备之间开辟一条直接传送数据的通路,使 CPU 的效率大大提高。
2025-06-26 15:06:27
1057
原创 STM32CUBEMX 使用教程4 — 串口 (USART) 配置、重定向 printf 输出
USART是通用同步收发器,是STM32中的一个串行通信设备,可以用于与外部的设备实现数据交换。
2025-06-25 10:00:00
610
原创 STM32CUBEMX 使用教程3 — 外部中断(EXTI)的使用
单片机的外部中断(External Interrupts, EXTI)是 MCU 中很重要的功能之一,它允许单片机对外部事件做出快速响应。
2025-06-24 07:00:00
1091
原创 STM32CUBEMX 使用教程2 — GPIO的使用、输入/输出
对于Cortex-M3的系列MCU,比如 STM32F103 它的GPIO总共有八种模式
2025-06-23 14:32:29
415
原创 STM32CUBEMX 详细安装教程
使用STM32开发的朋友,第一想到估计是CUBEMX吧,毕竟确实是方便,点几下就能生成想要的代码。所以,学会cubemx是很有必要的。
2025-06-19 13:32:40
935
原创 单片机接入以太网常见的方案有哪些?
现在不少的产品在开发时都要求单片机(MCU)能接入以太网,从而实现网络通讯的功能。比如工业控制、物联网网关、远程监控、嵌入式服务器等等,很多产品的应用场景都有网络的身影。
2025-06-16 14:00:00
904
原创 总算搞懂 ADC各种常见参数的作用了
ADC(模数转换器)是一种将模拟信号转换为数字信号的设备,广泛应用于高精度测量和项目开发中。尽管ADC被频繁使用,许多开发者对其深入了解有限,尤其是软件工程师,他们通常只关注软件设计和调试,而对ADC的设计和选型接触较少。
2025-05-21 15:00:00
832
原创 外部因素导致的 ADC误差来源分析
外部因素对ADC采样误差的影响主要包括:模拟信号源输入减少、ADC参考电压噪声、采样信号与ADC动态范围不匹配、ADC采样电路设计问题、I/O引脚受外部干扰以及PCB板走线设计问题。
2025-05-20 22:01:23
1029
原创 51单片机的内核架构组成 & 介绍
对于51单片机相信很多电子信息或者相关专业的朋友应该都不会感觉陌生,很多专业在大学课程中开设的单片机课程就是使用的51单片机进行授课和学习的。
2023-12-10 14:51:40
3567
原创 Modbus协议详解5:Modbus数据模型、寄存器、功能码 (非常重要)
Modbus协议最早的应用领域是工业控制中的,那个时候PLC中的使用很多,而且涉及的控制对象又很多是开关、指示灯、信号灯等等的,所以为了控制和表示这一系列的对象,就需要抽象一些数据类型出来专门进行表示。线圈可读可写,还是布尔类型的,它可以表示控制现场的开关,1表示开关的打开,0表示开关的关闭。控制开关的开闭可以这么表示,同样的读取回来的值也可以表示开关的开闭状态。看着还挺让人奇怪的。Modbus是应用层上的协议,还是一种主从的通信协议,通信过程按照一定的协议规则进行,数据的交互也是有固定的格式的。
2023-10-29 11:29:32
10601
原创 Modbus协议详解4:RTU帧 & ASCII帧的差错校验
纵向冗余校验(LRC)为一个字节,含有8位二进制值。LRC由发送设备计算,并附加LRC到报文。接收设备在接收文时计算LRC,并将计算的结果与在LRC接收到的实际值相比较,如果两个值不相等,则结果为错。
2023-10-24 22:43:51
3363
原创 Modbus协议详解3:数据帧格式 - RTU帧 & ASCII帧的区别
在项目应用中,很多时候多报文帧的接收都会涉及到中断,特别是在通信速率很高的情况下,会频繁的快速中断,对cpu的负担是很重的,这个时候这t1.5和t3.5的时间就会变得很短暂,并不是很好处理。在RTU模式中,为了标识不同的报文帧,在报文帧之间插入一个空闲时间间隔,在两帧报文之间用至少3.5个字符的空闲时间来区分不同的帧,同时标识一帧是否已经完成接收。
2023-09-17 13:01:46
13501
2
原创 Modbus协议详解2:通信方式、地址规则、主从机通信状态
Modbus是一种串行链路上的主从协议,在通信线路上只能有一个主机存在,不会有多主机存在的情况。虽然主机只有一个,但是从机是可以有多个的。
2023-09-06 22:42:38
10124
原创 Modbus协议详解1:Modbus的简介
早在1979年出现工业串行链路以来,Modbus的应用就开始普遍起来,它使得各种自动化设备之间的互相通信得到实现,做嵌入式产品开发的朋友应该不会陌生,Modbus的身影是随处可见的。并且在中国Modbus都已经形成了规范的标准,都有相应的国标的文件可以查阅到的。
2023-08-27 12:23:29
704
原创 PID控制的总结 — 概念与参数整定
对于这个PID参数的整定,我个人认为没什么一步到位的好方法,针对不同的系统,同样的控制算法,参数都不会一样的,还要根据实际的情况去调节。
2023-08-06 19:27:29
2544
原创 ubuntu与windows之间的文件共享
综合上述的三种方式,我觉得第三种方式其实更加方便,前面的两种都需要网络的支持,第三种就不需要网络也行。由于在ubuntu中安装source insight比较麻烦,这个软件本身也没有linux版本的,但是我又想ubuntu中的代码可以在windows中打开来阅读和编写,那怎么办呢?这部分的操作基本都差不多,就是客户端上输入ubuntu的主机IP地址,如果不知道IP是多少,可以在终端输入指令进行查询。输入账户名后会提示你输入密码的。然后输入ubuntu主机的用户名,注意这个用户名的输入,看下面的图示。
2023-07-23 13:40:00
17111
2
原创 PID算法:标准PID算法的一些改进措施
如果积分饱和了,在系统的偏差方向发生了改变了之后,PID这个时候会起作用进行调节,但是由于积分项太大了,就需要经过比较长的时间才能让输出U(n) 从积分饱和区脱离,会使调控作用滞后,让系统出现明显的超调,整个系统的调节效果会变差,这肯定是不希望出现的。这就是积分不灵敏的情况。积分限幅法的操作原理是:对积分项的输出设定一个限制,当积分项的输出达到限制,就停止积分项的计算,PID算法中的积分计算项的值采用上一个时刻的积分值。相反,当系统的偏差比较小的时候,让积分的速度快一些,以求尽快的消除静差。
2023-07-16 18:59:01
4840
原创 串口接收不定长数据的实现
使用串口进行数据的收发在嵌入式产品中是很常用的一种通信方式,因为串口的简单使用,很容易就被选为产品中数据交互的通信手段。
2023-07-02 12:46:07
2929
原创 PID算法:过程控制中的重要质量指标
PID算法广泛的被应用在很多的控制系统中,最终的目的都是希望通过pid控制器实现被控量能稳定在预期的目标值。
2023-06-15 23:05:24
3180
原创 PID算法:增量式PID & 位置式PID
一般而言,计算机实现PID算法的时候,在采样周期很小的时候,积分部分可以用对误差求和的方式代替,微分部分可以用差商的方式代替,从而实现将连续的PID算法的差分方程进行离散化,能够通过计算机实现。数字PID:指的是PID控制算法的实现是通过计算机软件程序实现的,计算机需要对输入的连续信号进行采集,然后通过量化作为控制器的输入参数,从而经过算法的调节实现目标对象的控制。图中的模拟调节器的意思就是控制规律的方案是通过模拟硬件的方式来实现的,如果想要调整系统的控制规律就需要修改调节器的硬件。
2023-06-10 13:32:32
16653
2
原创 freeRTOS中使用看门狗的一点思考
关于看门狗想必各位嵌入式软件开发的朋友应该都不会陌生的。在嵌入式软件开发中,看门狗常被用于监测cpu的程序是否正常在运行,如果cpu程序运行异常会由看门狗在达到设定的阈值时触发复位,从而让整个cpu复位重新开始运行。
2023-05-07 23:03:58
4796
原创 SG90舵机的原理和控制方式
舵机只是我们通俗的叫法,它的本质是一个伺服电机,也可以叫做位置(角度)伺服驱动器。一般被应用在那些需要控制角度变化的系统中,可以方便的实现转动任意的角度,实现控制角度的变化。
2023-03-23 23:26:15
38118
原创 排序算法 - 冒泡排序
冒泡排序算法应该可以说是很经典的一种对数据进行排序的的算法了,甚至在很多的介绍算法的数据中,它可能还是放在最前面开始讲解的。
2023-03-13 13:43:06
1014
原创 linux多线程的同步手段 — 条件变量
有没有这样的一种方式,在某个条件没有成立的时候,这个线程平时就被阻塞挂起,等到这个条件成立了,通知一下这个线程条件已经成立了,可以去执行相关的操作了。
2023-03-10 23:33:36
735
原创 linux 中的压缩和解压操作
在开发中,很多时候会遇到某些文件要进行压缩的操作,比如文件较大不方便传输的时候,可能会考虑对文件进行压缩,以减少文件传输的时间。
2023-02-03 21:46:29
2180
原创 大小端是什么?如何判别?
在计算机系统中,内存的最小存放单元是字节,即一个地址对应一个字节,可以保存一个字节(8Bit)的数据,但是在计算机系统中又不可能全部都是一个字节的存储方式,还有一些8位、16位、32位的系统,它们还会有2个字节、4个字节的变量。
2023-02-02 15:49:54
4056
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人