自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EtherCAT实现时钟同步的一个概念性的示例和步骤

在主站代码中,你需要实现一个时钟同步的循环,该循环会周期性地发送同步命令给从站,并处理从站的响应。在主站代码中,你需要初始化EtherCAT主站,并配置相关的参数,包括从站的地址、通信参数等。在从站代码中,你需要初始化从站的EtherCAT接口,并启用分布式时钟功能。在从站代码中,你需要处理来自主站的同步命令,并返回相应的响应。

2024-11-03 10:40:24 162

原创 EtherCAT通信系统中的时钟同步机制

EtherCAT(Ethernet for Control Automation Technology)通信系统中的时钟同步机制是其核心特性之一,它确保了所有连接的设备能够精确、同步地执行操作。

2024-11-03 10:31:08 221

原创 SOES(EtherCAT)从站API梳理

【代码】SOES(EtherCAT)从站API梳理。

2024-10-29 22:12:09 641

原创 SOEM(EtherCAT)主站API梳理

这些函数用于访问通过AP(Application Port)或FP(FMMU Port)映射的EEPROM。这些函数用于访问从站的EEPROM和SII信息。这些函数用于直接访问从站的EEPROM。

2024-10-29 22:10:49 920

原创 SOEM-master源代码文件大致梳理

ethercat.h 这是一个头文件,通常包含了EtherCAT协议的基础定义和宏。它定义了EtherCAT通信所需的基本数据结构、常量、函数原型等。这个文件是EtherCAT库的核心,其他头文件会包含或依赖于它。 ethercatbase.h 这个头文件包含了EtherCAT基础功能的定义,如初始化、关闭EtherCAT通信、发送和接收EtherCAT帧等。它提供了与EtherCAT从站进行基本通信的接口。 ethercatcoe.h COE(CanOpen over EtherCAT)

2024-10-20 15:44:20 352

原创 ESC(EtherCAT Slave Controller,EtherCAT从站控制器)相关函数

向调试日志中添加ESC寄存器的地址,以便在调试过程中跟踪和记录这些寄存器的值。:一个16位的无符号整数,表示初始化是否成功。:不同的从站可能支持不同数量的同步事件,具体数量取决于ESC模块的实现和配置。:定时器每毫秒增加的值,可能是一个32位的无符号整数。:定时器的当前值,可能是一个32位的无符号整数。:从ESC模块的指定地址读取一个32位的数据字。:从ESC模块的指定地址读取一个16位的数据字。:向ESC模块的指定地址写入一个32位的数据字。:向ESC模块的指定地址写入一个16位的数据字。

2024-10-19 16:03:58 781

原创 STM32 HAL库中用于CAN(Controller Area Network)通信的API简介

初始化CAN的底层硬件(MSP:MCU Service Package)。:传入CAN句柄和FIFO号,返回FIFO中的消息数量。:传入CAN句柄和邮箱号,返回非零值表示有消息待发送。:传入CAN句柄,返回非零值表示处于睡眠模式。:传入CAN句柄和指向CAN消息结构体的指针。:反初始化CAN外设,重置其寄存器到默认值。:传入CAN句柄和指向接收消息结构体的指针。:传入CAN句柄和邮箱号,返回时间戳。:传入CAN句柄,返回空闲邮箱数量。:传入CAN句柄,返回错误状态。:接收来自CAN总线的消息。

2024-10-15 11:03:58 802

原创 Input floating、Input pull-up、Input-pull-down、Analog、Output open-drain、Output push-pull……

GPIO口的配置模式

2024-10-15 08:23:11 446

原创 IP协议详细介绍

4位,以32位字(4字节)为单位,表示IP报文头部的长度。前3位是优先级,接下来4位是服务类型(如延迟、吞吐、可靠性等),最后1位未使用。:4位,表示IP报文的版本号。:8位,表示报文的生存时间,即报文在网络中可以经过的最大路由器跳数。:16位,表示整个IP报文(包括头部和数据)的总长度,单位为字节。当报文被分片时,所有分片的标识字段值相同,以便接收端能够重组报文。例如,ICMP的协议号为1,TCP的协议号为6,UDP的协议号为17。:13位,表示该分片在原报文中的偏移量,单位为8字节。

2024-10-15 07:37:58 510

原创 位定时结构

位定时结构是指通信系统中用于确定数据位边界和同步各个节点时钟的一种机制。在数字通信中,数据以位(bit)的形式进行传输,每个位都具有一定的持续时间,这个持续时间被称为位时间(bit time)。位定时结构就是用来确保每个节点都能够准确地识别出数据位的起始和结束,以及各个位之间的边界。在CAN总线中,位定时结构是实现多节点通信和同步的关键机制之一。在以太网中,虽然不采用与CAN相同的位定时结构,但类似的时钟同步和延迟补偿机制也是确保数据传输准确性和可靠性的重要手段。

2024-10-13 18:36:32 379

原创 CAN控制器的配置简要介绍

这是一个分类,用于描述更高级的网络设置或配置。这是一个勾选框,表示以下列出的是基本参数。

2024-10-13 14:26:20 1001

原创 2024年诺贝尔物理学奖授予机器学习与神经网络领域的研究者之影响

跨学科研究不仅能够促进不同学科之间的交流和合作,还能够产生新的科学思想和方法,推动科学的进步和发展。这些新的研究领域和研究方向往往能够产生重大的科学突破和技术创新,为人类社会的发展带来深远的影响。这些人才具备跨学科的思维方式和解决问题的能力,能够在不同领域之间架起桥梁,推动科学的交叉融合和协同发展。此奖项的颁发,预示着机器学习与神经网络研究将成为未来科技发展的核心驱动力之一,吸引更多的资源和人才,加速人工智能技术的成熟与应用。这些人才将带来新鲜的思维、创新的想法和丰富的经验,共同推动该领域的进步。

2024-10-11 23:08:17 968

原创 100M以太网

以太网通信是一种使用同轴电缆或光纤作为传输信道,采用载波多路访问和冲突检测机制的通信方式。

2024-10-11 06:30:00 460

原创 RS-232通信格式

RS-232数据帧的通信格式是一种标准的串行通信格式,广泛应用于计算机和各种外设之间的数据传输。

2024-10-10 10:00:00 418

原创 RS-485通信标准

RS-485是一种串行通信标准,也被称为EIA-485或TIA-485,它定义了在多个设备之间进行数据传输的电气特性、信号线路和通信协议。

2024-10-10 06:00:00 331

原创 线程安全与可重入函数

如果一个函数在同一时刻可以被多个线程安全地调用,即函数被多个并发线程反复调用时,它会一直产生正确的结果,那么这个函数就被称为线程安全的。

2024-10-09 22:24:53 440

原创 动态内存分配 VS 静态内存分配

动态内存分配定义:在程序运行时,根据实际需要动态地向系统请求内存资源,并在使用完毕后释放内存。特点:内存分配和释放的时间不固定,由程序员在代码中显式控制。静态内存分配定义:在程序编译时,根据代码中的变量声明和数组定义等静态信息,由编译器自动分配内存。特点:内存分配在编译时完成,分配和释放的时间固定,由编译器控制。相同点两者都是内存管理策略,用于为程序分配内存资源。两者都受到操作系统和硬件平台的限制。不同点分配时间:动态内存分配在运行时进行,静态内存分配在编译时进行。

2024-10-09 22:21:26 491

原创 CAN(Controller Area Network)总线的仲裁机制

在CAN总线网络中,各个节点地位平等,没有固定的主节点或从节点之分。这种设计使得每个节点在需要时都可以试图访问总线。当多个节点同时尝试发送数据时,就需要通过仲裁机制来决定哪个节点的报文优先发送。仲裁机制能够实时地检测总线上的冲突,并根据报文的优先级来做出决策,从而确保高优先级的数据能够不受任何损坏地传输。

2024-10-09 06:09:37 788

原创 CSMA/CD协议整理

CSMA/CD协议的核心思想是“先听后发,边发边听,冲突停发,随机延迟后重发”。当一个网络设备(如计算机或交换机端口)想要发送数据时,它会首先执行载波侦听操作,即检测网络信道是否空闲。如果信道空闲,设备则开始发送数据;如果信道繁忙,设备将等待直至信道空闲。在数据发送过程中,设备会持续监听信道,以检测是否发生了冲突。

2024-10-09 06:07:56 509

原创 TCP(Transmission Control Protocol,传输控制协议)整理

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的传输协议,它是OSI(Open System Interconnection,开放式系统互联)模型中的第四层协议,通常使用于网络中的应用层和传输层之间。

2024-10-09 06:06:21 1113

原创 CAN协议帧结构

虽然ACK槽不是数据帧的一部分,但它在数据帧的传输过程中起着重要作用。ACK槽位于数据帧和错误帧之间,用于接收节点向发送节点发送确认信号(显性位表示确认,隐性位表示未确认)。如果接收节点正确接收了数据帧,它将在ACK槽期间发送一个显性位作为确认信号。CAN数据帧由多个字段组成,每个字段都承载着特定的信息,以确保数据在CAN总线上的高效、准确传输。

2024-10-09 05:41:33 788

原创 51、AVR、ARM、DSP等常用芯片之对比

51芯片通常指的是基于8051内核的单片机,这是一种经典的微控制器(MCU)。AVR是由Atmel公司(现已被Microchip公司收购)开发的一种微控制器芯片系列,具有低功耗、高性能的特点。ARM芯片是基于ARM架构设计和制造的微处理器芯片,由英国的ARM公司开发和授权。DSP芯片是指数字信号处理芯片,是一种专门用于数字信号处理的集成电路。

2024-10-08 23:33:41 1293

原创 IIC、CANBUS、MODBUSRS232、RS485、10/100M以太网、红外、蓝牙等之对比

采用差分信号传输方式,在同一条数据线上传输两个信号(正向和反向),信号间的电压差表示数据。:通过SDA(数据线)和SCL(时钟线)两条总线线路进行电平变化来传输数据和时钟信号。:通过设备之间的串行线进行数据传输,支持RS232/RS485/RS422等协议。:基于IEEE802.3标准,使用双绞线、光纤等传输介质,支持全双工和半双工通信。:使用单独的串行线传输数据,包括TXD(发送数据)和RXD(接收数据)两条线。:使用差分信号传输数据,基于总线结构,多节点可同时发送和接收数据。

2024-10-08 23:31:42 1130

原创 NEC协议

NEC协议是一种红外线通信协议,广泛应用于家电遥控器和其他红外线设备之间的通信。

2024-10-08 23:27:08 662

原创 Telnet、SSH、RDP和VNC

相同点都是远程访问和管理的工具或协议。都允许用户通过网络远程访问和操作远程计算机。不同点安全性:SSH最高,RDP和VNC中等(需配置),Telnet最低。性能与兼容性:Telnet性能最高且兼容性最广,SSH性能较低但兼容性较好,RDP在Windows环境中性能良好且兼容性较好,VNC性能受网络影响且兼容性出色。使用场景与优缺点:各协议/工具根据其特点和安全性适用于不同的场景,并具有各自的优缺点。

2024-10-03 20:51:53 1501

原创 FAT32、NTFS、EXT4和exFAT等文件系统总结

EXT4分区由多个块组(Block Group)组成,每个块组包含Super Block、GPT、Reserved GPT、Data Bitmap、Inode Bitmap、Inode Table和Data等部分。EXT4(Fourth Extended File System)是Linux操作系统中最常用的文件系统之一,是对先前的Ext2和Ext3文件系统进行改进和增强而设计的。引导扇区包含启动代码和分区表,文件记录存储文件的数据和元数据,元文件存储文件系统的元数据。

2024-10-02 16:29:08 1260

原创 存储芯片简单分类

存储芯片是电子设备中用于存储数据的核心组件,其分类可以从多个维度进行,包括掉电数据丢失性和存储数据的介质等。

2024-10-02 16:11:23 470

原创 C语言中的栈

调用栈,也称为执行栈,是程序执行过程中用于存储函数调用信息的数据结构。它是一个后进先出(LIFO)的栈,其中每个元素都是一个栈帧(Stack Frame)。

2024-09-28 15:38:29 1083

原创 C语言中的栈帧

每当一个函数被调用时,就会在调用栈上创建一个新的栈帧(Stack Frame)。这个栈帧用于存储该函数执行期间所需的所有信息。

2024-09-28 15:33:45 640

原创 volatile类型修饰符

volatile是一个关键字,用于修饰变量,以指示该变量的值可能会意外地被改变,因此编译器在每次访问该变量时都必须直接从其内存地址中读取值,而不是使用可能存储在处理器缓存中的值。这样做的主要目的是确保变量的可见性和有序性。

2024-09-25 20:31:19 509

原创 C语言运算符的优先级详细总结

这个列表涵盖了C语言中所有的运算符及其优先级,但请注意,随着C语言标准的发展(如C99、C11、C17等),可能会引入新的运算符或特性,但基本的运算符优先级结构保持不变。

2024-09-25 20:07:29 434

原创 select 函数简介

函数是 UNIX 和类 UNIX 系统(如 Linux)中用于监视多个文件描述符(file descriptors)状态变化的一个系统调用。它允许程序监视多个文件描述符,以查看它们何时变为可读、可写或有异常条件待处理。这个函数对于实现非阻塞 I/O 操作、多路复用 I/O 以及处理多个输入/输出源非常有用。

2024-09-25 19:50:41 281

原创 C语言中的转义字符

可以表示任意的ASCII字符,但它们并不被严格视为“转义字符”的固定成员,而是转义字符表示法的一种扩展,用于灵活地表示任何ASCII字符。)在不同的系统和环境中可能表现不同,或者可能不被所有编译器和终端支持。因此,在编写跨平台的C程序时,应谨慎使用这些转义字符。)来允许程序员表示任何ASCII字符。因此,除了上述列出的常用转义字符外,还可以根据需要使用。此外,C语言标准并未直接定义所有可能的转义字符,而是提供了一种机制(即。另外,需要注意的是,某些转义字符(如。来表示其他ASCII字符。

2024-09-25 12:32:31 400

原创 C语言的语句分类

【代码】C语言的语句分类。

2024-09-24 23:24:49 361

原创 常用算法分类

常用算法分类

2024-09-24 17:44:37 370

原创 C语言中使用char* p和使用char p[50]来存储字符串之比较

时,需要程序员自己管理内存,这增加了复杂性,但也使得程序员可以更加精确地控制内存的使用。适用于字符串大小已知且不会改变的场景,如存储用户的输入(在知道输入长度的限制下)等。提供了更高的灵活性,因为它可以动态地分配和释放内存,以存储不同大小的字符串。适用于需要动态处理大小不确定的字符串的场景,如文件读取、网络数据传输等。:对于这两种方式存储的字符串,都可以使用C标准库中的字符串处理函数(如。则相对安全一些,因为它的大小是固定的,不会超出栈的范围。的大小在编译时就已确定,不够灵活。),用于标记字符串的结束。

2024-09-24 16:00:53 995

原创 C语言中的值传递与引用传递

两者都是函数或方法调用时,用于将参数从调用者(或主程序)传递给被调用者(或函数/方法)的机制。:在函数调用时,都会发生参数的传递。

2024-09-24 15:40:05 378

原创 梳理一下C语言中的格式说明符

请注意,随着C语言标准和库的发展,可能会有新的格式说明符被引入,但上述列表涵盖了C语言中最为常见和基本的格式说明符。

2024-09-24 15:36:29 736

原创 C语言的关键字分类

C语言一共有32个关键字,这些关键字可以根据其功能分为以下几类:

2024-09-23 12:58:48 497

原创 C语言中的关键字详细梳理

(C11新增):这些是C11标准引入的关键字或特性,用于支持更高级的功能,如对齐、原子操作、泛型选择、无返回函数声明、静态断言和线程局部存储。联合体是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型,但一次只能存储其中一种类型的数据。:C99标准新增的关键字,用于告知编译器两个指针不会指向同一个内存位置,这有助于编译器进行更好的优化。用于声明不返回值的函数,或作为函数的参数类型,表示该函数不接受任何参数。:用于声明一个变量或函数是在别的文件中定义的,或者是在当前文件的后面定义的。

2024-09-23 12:56:43 1022

基于STM32F4硬件配置的Mbed TLS库,用以实现HTTPS协议栈

利用W5500芯片的TCP/IP协议栈来实现低级别套接字连接并支持Mbed TLS、将SERVER_PORT更改为443、编译该应用程序并将其链接到基于STM32配置的Mbed TLS库之后,就有了一个可以与web服务器进行基本HTTPS通信的单片机应用程序。

2024-09-12

空空如也

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

TA关注的人

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