6k 6 分钟

# 文件传输 最常用的几种文件传输协议有:XModem、YModem、ZModem 等。 XModem 是最早的文件传输协议之一,由于出现较早,几乎大部分的通讯程序所支持的文件传输都使用该协议,通常是传输 128 字节的信息块;这种古老的传输协议速度虽然较慢,但由于使用了 CRC 错误校验方法,传输的准确率可高达 99.6%。 YModem 协议是 XModem 的改进版,它最早用于调制解调器之间的文件传输,具有快速,稳定传输的优点。它的传输速度比 XModem 快,这是由于它可以一次传输 1024 字节的信息块,同时它还支持传输多个文件,也就是常说的批文件传输。 ZModem...
4.5k 5 分钟

嗨,相信在上一篇经过我的兄弟 RTU 的介绍之后,已经对 Modbus 有了一定的了解了吧;那么本篇就跟紧我的脚步一起学习新的知识吧。 # 描述 Modbus 在串行设备中通过实现主从模型结构,解决了电子设备之间的数据通讯问题;在采用 Modbus 协议时,它有两种主要的原始传输方式 ---- Modbus RTU 和 Modbus ASCII。而 Modbus RTU 已经在上一篇介绍了,那么就在本篇中瞅瞅 ASCII 吧。 # 通讯方式 # 帧格式 Name Length (bytes) Description Start 1 Starts with colon : (ASCII...
6.9k 7 分钟

您好啊,我是 Modbus 家族成员的 RTU,同时期诞生的还有我的兄弟,它就是 ASCII。本篇呢就来让大家熟悉一下我吧,下一篇则由我兄弟 ASCII 进行介绍。好了,废话不多说,接下来就带你们来认识一下我吧。 # 描述 Modbus RTU(远程终端单元)是原始 Modbus 规范中定义的两种传输模式之一。 这两种模式是 Modbus RTU 和 ASCII,它们被设计用于支持 RS232,RS485 和 RS422 接口的串行设备。 Modbus RTU 的一个显着特点是它使用二进制编码和强大的 CRC 错误检查。 Modbus RTU 是 Modbus...
11k 11 分钟

官方文档介绍:RT-Thread 文档中心 # 各模块 API 接口 由于 RT-Thread 实时操作系统跟各大类 RTOS 应用原理大致相同,因此不再详述各模块功能的作用了(各模块功能的详细信息可参考以前的 《FreeRTOS 专栏》),只总结各类功能接口的 API 调用函数。 官方 API 参考手册:RT-Thread API 参考手册 # 线程管理 # A、线程使用 函数功能 API 接口 函数描述 与 FreeRTOS 相匹配的函数 创建线程 rt_thread_t rt_thread_create(const char *name, void (*entry)(void...
2.9k 3 分钟

# 历史溯源 Modbus 是由 Modicon 公司(现在的施耐德电气 Schneider Electric)在 1979 年开发的一种消息传递结构,为使用可编程逻辑控制器(PLC)通信而发表,用于在智能设备之间建立客户端 - 服务器通信;这是一个划时代、里程碑式的网络协议,因此为工业网络拉开了序幕。Modbus 已经成为工业领域通信协议事实上的业界标准,并且现在是工业电子设备之间常用的连接方式。 Modbus 在工业环境下很流行,因为它是公开发表并且无著作权要求的。它是为工业应用开发的,与其他标准相比,它相对易于部署和维护,除了要传输的数据格式的大小外,几乎没有其他限制。Modbus...
3.7k 4 分钟

# 步进电机 # 介绍 步进电机(英语:Stepper motor、Step motor)是直流无刷电机的一种,为具有如齿轮状突起(小齿)相锲合的定子和转子,可借由切换流向定子线圈中的电流,以一定角度逐步转动的电动机,能将电脉冲信号转换成相应角位移或线位移。 # A、构造上 步进电机在构造上有三种主要类型:反应式(Variable Reluctance, VR)、永磁式(Permanent Magnet, PM)和混合式(Hybrid Stepping,...
2.5k 3 分钟

# 前言 newlib 的 strtod、sprintf、sscanf、snprintf、vsnprintf 这些函数都是非线程安全的,这些函数的行为和 keil \ IAR 以及我们的认知并不一样,这些函数在使用 %f or %lf 来输出浮点时,会在申请一块 3.5K 左右的内存空间,该内存空间只申请一次,且不释放。作为全局内存使用。如果有多个线程同时调用 sprintf 来字符串化浮点数据,会有几率或较大几率导致系统死机(尤其是多个线程高密度的调用 sprintf...
5.5k 6 分钟

在当前这个时代,对于 PCB 设计,有太多的 EDA 设计软件了,如:Cadence、PADS、Altium 等,但绝大多数是要授权的,而且如今人们版权意识正在提高;这对电子爱好者来说,要想 DIY 一个好东西,免不了依赖于这些设计软件,但如果有开源的、顺手的软件,那么我们更倾于应用这些软件,毕竟从版权意识上看以及投向开源社区来讲都是好的。 # 简介 KiCad 是一个开源软件工具,用于设计电子原理图和 PCB 图形。 其官网地址:https://www.kicad.org/ 各操作文档说明:https://docs.kicad.org/ 由于 KiCad...
8.3k 9 分钟

在程序开发阶段,少不了 Debug 调试,除去编程架构搭建不稳定所造成的错误外,大部分会出现或多或少的故障异常,而这些异常有可能是粗心或者对编程了解不到位所导致的 ‘ 堆栈溢出 ’ 、‘ 数组下标越界 ’ 、‘ 数学运算异常 ’ 等等;而本篇则主要以常见的进入 Hardfault 中断来进行分析错误来源。 # ARM Cortex-M 核心 ARM 架构,过去称作高级精简指令集机器(英语:Advanced RISC Machine,更早称作艾康精简指令集机器,Acorn RISC Machine),是一个精简指令集(RISC)处理器架构家族,其广泛地使用在许多嵌入式系统设计。 而对于 ARM...
5.6k 6 分钟

# 奇偶校验 # 介绍 奇偶校验位(英语:parity bit)或校验比特(英语:check bit)是一个表示给定位数的二进制数中 1 的个数是奇数还是偶数的二进制数。奇偶校验位是最简单的错误检测码。 # 原理 奇偶校验常见于串口数据收发,如其名,可分为奇校验和偶校验: 奇校验:原始码流 + 校验位,其 “1” 的个数为奇数,则校验位为 “0”;若为偶数,则校验位为 “1”。 偶校验:原始码流 + 校验位,其 “1” 的个数为奇数,则校验位为 “1”;若为偶数,则校验位为 “0”。 奇校验是在每个字节后增加一个附加位,使得 “1”...