自定义博客皮肤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)
  • 收藏
  • 关注

原创 挑战全网,仅需一行代码,判断电脑字节序是大端还是小端,欢迎留言讨论。

如果有想法的请把你的代码写在评论区。我已经实现了,可以和我的比较一下。

2023-10-13 11:21:21 77

原创 ModbusRTU协议之3.5T

ModbusRTU协议中规定,报文帧和帧之间,由时长。当波特率大于19200,固定值位1750us;个字符时间的空闲间隔区分,被称作 t3.5。校验位使用偶校验、奇校验、无校验都可以,但。所以无论如何,每个帧都由11位构成。1 校验位(也可以无校验),使用无校验时必须配置。

2024-06-14 14:20:52 844

原创 ModbusTCP报文数据帧详解

2024-06-13 16:29:10 347

原创 STM32移植FreeMODBUS RTU

基于STM32的ModBus实现(一)移植FreeMODBUS RTU - fyxs - 博客园 (cnblogs.com)

2024-06-13 14:04:20 283

原创 【Modbus RTU协议说明】

报文的首字节是功能码域。需要注意的是地址域只和从站有关,主站是没有地址标识的,而且每个从站的地址都是唯一的,以便于与其它从站区别。紧接着的一个字节01,表示从站返回的字节数,也就是返回1个字节,其中的00表示8-3线圈的状态,它的二进制是0000 0000从右至左依次表示3-8线圈的状态,最高两位用0填充,这是因为协议必须要输出一个完整的字节才行。紧接着的一个01字节表示要为线圈写入一个字节的内容,内容是2A,用二进制表示是0010 1010,对应的线圈顺序是8-3,数据字节中未使用的比特还是用零填充。

2024-06-09 23:55:05 1137

原创 stm32编写Modbus步骤

(1)分析板子的具体信息,编写不同的设备结构体,比如只读的结构体,可读写的结构体,保存配置信息的结构体(当主机发送改变配置信息的消息帧时,会改变相应的变量,并写入flash)(3)根据上一步获取的从机寄存器地址,对保持寄存器的指针进行偏移指向,即指向不同信息结构体的首地址,此过程判断寄存器地址是否溢出。会首先进行处理在串口数据中找出符合要求,接收正确的数据帧,并记录其功能码,输出帧的真实地址,就可以得到主机想要操作的从机的寄存器地址。(2) modbus寄存器映射,定义保持寄存器的指针;

2024-06-09 23:30:34 1127

原创 stm32编写Modbus步骤

539 //Modbus功能码16处理程序 /////////////////////////////////////////////////////////////////////////////////////////////////已验证程序OK。488 //Modbus功能码03处理程序///////////////////////////////////////////////////////////////////////////////////////已验证程序OK。

2024-06-09 23:24:00 3292 2

原创 STM32系统架构及什么是寄存器

个人总结:SRAM 就是一块儿内存,可以高速访问读写的内存,但掉电丢失数据,相当于我们手机里经常说的内存 8G+128G 中的 8G,我们打开某个APP,手机的操作系统就会调用该APP,其中产生的临时变量、函数调用什么的都是在运行内存上进行,所以,买手机大家都看运行内存有多大,当然越大,你的手机使用起来就越流畅,开多个应用也不会卡,当然这也只是你手机运行流畅的一部分原因,还得看手机厂商做的怎么样之类的。本寄存器中的位权限都是w,所以只能写,如果读本寄存器,是无法保证读取到它真正内容的。

2024-06-08 15:59:40 796

原创 单片机串口发送为空中断和发送完成中断有什么区别?

单片机串口发送的空中断和发送完成中断在触发条件和功能上存在明显的区别。这两种中断在单片机串口通信中起着重要的作用,确保了数据的连续发送和正确的状态通知。

2024-06-08 14:35:39 874

原创 STM32/keil把多个c文件编译为静态库lib

7、把已被编译为lib的c文件全部删掉或挪出项目文件夹(h文件要保留在原处),这时keil工程树会提示某些文件已找不到,直接右击移除出工程即可,然后,把编译出的lib文件,剪切到原先c文件所在的位置,并把这个lib文件添加进工程树中;通过以上步骤,各位应该知道为什么要把想要编译为lib的那一堆c文件放到同一个group了,如果不这么干,你就得一个一个右击c文件,选择排除编译,如果文件多,那要累死了,还是把整个组一下子给干掉来的舒服。把常用的、不经常修改的代码库编译成lib以后,可以加快整个工程的编译速度。

2024-06-08 12:00:10 870

原创 CAN通讯数据分包处理思路,自定义传输协议

假设要传输一个长度为20字节的数据,每个数据分包的大小为8字节,共分为4个数据分包,编号分别为1、2、3、4。1,确定数据分包的大小和数量。包总数 当前数据包编号3 数据11 数据12 数据13 数据14 数据15 本包校验和。包总数 当前数据包编号4 数据16 数据17 数据18 数据19 数据20 本包校验和。包总数 当前数据包编号2 数据6 数据7 数据8 数据9 数据10 本包校验和。包总数 当前数据包编号1 数据1 数据2 数据3 数据4 数据5 本包校验和。分包数=数据总数/每包数据数。

2024-06-08 08:38:45 797

原创 大厂是怎么提高研发效率的?

现在的项目团队,一般都有自己的团队知识库,通常是云端网站的形式,所有的成员可以在知识库中上传想要保存和分享的文档,也可以直接在知识库中编写文档。很多年前,在我还有一双清澈的双眼的时候,我在本地开发网站都是改一行代码,然后切换到浏览器里刷新看效果,然后再改代码,再刷新,如此往复,非常难受。降低风险的同时提升了管理定时任务的效率。但团队的项目量级较大时,通常会部署到多台机器上,而且每台机器上的日志量都非常大,以人工的方式一台台登录服务器,然后在数以万计的日志中去找到自己想要的关键信息,是非常低效又恶心的!

2024-06-02 20:37:33 1366

原创 XModem协议介绍

YMODEM协议的传输过程如下图所示(摘自YMODEM协议手册其中“sb foo.*<CR>”指的是Linux中的sb命令,可在Linux终端执行 sb --help查看使用方法上图中YMODEM协议传输的数据块是128字节,其实YMODEM协议还支持1024字节的数据块,或者128字节和1024字节混合模式。详情请查阅YMODEM协议手册。SOH 表示本数据块大小为128字节STX 表示本数据块大小为1024字节本文中EOT指令仅有一次会话,即上图中的最后一次。

2024-06-01 18:20:53 3792

原创 ETAS易特驰公司ESCRYPT信息

ESCRYPT”这个名称可能是由“Electronic Security”和“Cryptography”这两个词汇的概念结合而成的。电子安全(Electronic Security)和加密技术(Cryptography)是ESCRYPT公司的主要业务领域,它们都是确保数字系统和通信安全的核心组成部分。因此,通过合并这些概念,ESCRYPT这个名字传达了公司在电子安全和加密技术领域的专业性和承诺。ESCRYPT这个名字既符合这些标准,又具有一定的独特性,有助于在市场中树立公司的品牌形象。

2024-03-09 17:24:20 703

原创 CAN标准帧和扩展帧,ID长度分别为多少?

标准帧主要由11位标识符和6位控制字段组成,总共有17位,适用于大多数常见的数据传输场景。扩展帧则由29位标识符和6位控制字段组成,总共有35位,其更长的标识符长度可以支持更多的节点和消息标识,适用于复杂的网络拓扑结构和大规模数据传输。CAN标准帧的ID长度是。,而扩展帧的ID长度是。

2024-03-09 16:47:17 3989

原创 CAN总线接头(接线端子)都有哪些种类。

CAN总线是广泛应用在汽车控制和工业自动化控制领域里的现场总线,具有广阔的发展前景。基于CAN总线,工程师们开发出了各种各样的相关设备,比如USBCAN分析仪以及CAN转换网关等等。不知道你是否注意过,这些CAN总线设备的CAN接口都是什么样子的。当然,只要是能够引出CAN高CAN低两根接线的,都可以充当CAN的接头,不要纠结于其外在的形象。1、多P凤凰端子类型,是最为常见的CAN接口类型,通用性好。

2024-01-25 08:17:51 2071

原创 物联网中南向协议、北向协议是什么?南向协议、北向协议的区别

等协议接入远端软件平台(包含:云平台,客户自主开发的云平台、美云、华为、阿里、百度、微软等IOT云平台,组态软件、MES系统、ERP系统等工业软件),支持同时接入不同种类的云平台和软件,支持定制化适配……,支持如:Modbus TCP、Modbus RTU、OPC UA 、DTL645、IEC、PPI、MPI、ISO on TCP、EtherNET。等南向协议,支持各种PLC、仪器仪表、机床、机器手臂、环保、电力等设备的数据采集,如:MQTT、MODBUS、OPCUA、SQL、HTTP、HJ212。

2024-01-22 16:43:11 2641

原创 STM32 标准外设SPL库、硬件抽象层HAL库、低层LL库区别?

第一、 F7系列开始 ST公司就已近开始停止更新标准库,也就是F7开始包括F7已经不能用标准库了,公司对于主打HAL库的目的已经非常明显了。第二、追求更方便、追求模块化向来是世界的潮流,更方便的HAL库一定会迅速发展,低效的短板迟早会被硬件高度集成化所弥补。当然啦,不能只学习HAL库,底层的原理必需是要懂的,这是每个学有所成的人都公认的事实,HAL库也不是万能的,结合对底层的理解相信一定会让你的开发水准大大提高。

2023-12-10 20:55:07 787

原创 欧洲各国及发达国家经济支柱和第一出口商品是什么

一般发达国家,像西欧的国家第三产业即服务业占GDP70%甚至更高,从业人数比重也最大,只是越发达的国家服务业的知识性和科技含量会更高,如商业咨询、律师、医疗卫生、科技服务、商业服务。服务业的工资还是有国家的创汇大项决定的,教育、创新、科技会决定利润的上限。重点发达国家是抱团发展的,以美国为首,所以美英德法等工业及科教强国能带动一批小国走向发达。欧洲国家第一大出口商品。

2023-12-02 19:28:38 4682

原创 使用VS Code与虚拟机搭配进行Linux下驱动开发的环境搭建教程

某不科学的“使用VS Code与虚拟机搭配进行Linux下驱动开发的环境搭建教程” - 知乎

2023-12-02 19:23:24 135

原创 如何强制任何Android应用程序进入全屏沉浸式模式(无生根)

在某些手机上,“关于手机”条目可能位于“设置”菜单中的其他地方,但是如果您四处走动,您应该能够找到它。接下来,您需要打开命令提示符(在Windows中)或终端(在macOS中),然后导航到名为“平台工具”的文件夹,其中安装了您的Android SDK。当您看到显示“您现在是开发人员”的弹出通知时,请按“后退”按钮,您将在主“设置”菜单中看到一个新选项:“开发人员选项”。如果您无法立即找到它,可以单击搜索栏下方的“所有应用程序”按钮将其缩小到仅安装在一台设备上的应用程序。在继续之前,请选择要使用的模式。

2023-12-02 17:33:34 4996

原创 单片机开发方式

STM32 标准库是一组 C 语言函数库,用于编写基于 STM32 微控制器的嵌入式系统。这个标准库提供了一系列通用的函数,用于编写各种应用程序。这些函数包括:1. 低级 IO 函数。2. 高级 IO 函数。3. 中断管理函数。4. 时钟和系统功能管理函数。5. 与外设接口的函数,如 ADC、DAC、GPIO、I2C、SPI、USART 等等。6. 延迟函数和调试函数。

2023-11-30 20:35:16 960

原创 TTL电平

MCU(微控制器)通常与多种应用模块使用TTL电平进行通信。这类应用模块可以是传感器、执行器、通信模块或者其他电子模块。请注意,虽然这些模块使用TTL电平与MCU通信,但它们之间的接口和通信协议可能有所不同,因此在设计电子系统时需要确保选择与MCU兼容的模块。微控制器通常通过诸如I2C、SPI、UART等串行通信协议与这些模块进行数据交换,这些通信协议通常在。上使用TTL电平标准。因此进行模块间通信时,不需要电平转换,可以直接与微控制器连接。

2023-11-29 20:37:57 181

原创 基于ROS开发的开源项目

ROS Navigation Stack,基于 ROS 的自动化驾驶和机器人导航有一些其他的项目和框架,但请注意,并非所有这些项目都专注于自动驾驶车辆,有的是更加偏向于机器人的通用导航和控制。:虽然PX4和Ardupilot是两个独立的无人机飞控项目,但它们可以与ROS进行集成,这样的集成提供了从仿真到实际飞行测试的无缝过渡,是无人机研究和开发领域的重要工具。: 针对工业应用,ROS-Industrial项目旨在将ROS的高级功能扩展到工业应用场合,包括与工业机器人、自动化设备集成、工业界面等的集成。

2023-11-25 16:19:44 1380

原创 ROS、Player,YARP,Orocos,CARMEN,Orca,MOOS和 Microsoft Robotics Studio,这些机器人开发框架的历史和区别

这些机器人开发框架提供了一系列工具、库和协议,支持不同级别的机器人研发和应用。

2023-11-25 15:52:34 918

原创 正则表达式文法icase nosubs optimize collate ECMAScript basic extended awk grep egrep,分别有什么区别?

使用该写法就可以不再转义即可使用,其中dem为任意字符,但要求前后一致即可,其它为固定写法.当然除了选择文法,还可以选择其它标志,只需要将他们用符号 | 连接起来即可。如忽略大小写匹配可以写为。regex库默认使用的。

2023-11-18 20:34:03 114

原创 函数对象类,函数对象(又称仿函数)

如果一个类将 () 运算符重载为成员函数,这个类就称为函数对象类,这个类的对象就是函数对象(又称仿函数)。

2023-11-17 14:04:06 166

原创 C++实现有理数类 四则运算和输入输出

https://www.cnblogs.com/bwjblogs/p/12982908.html

2023-11-16 20:32:57 445 1

原创 QT编程时如何开启c++11?其他IDE如何开启C++11?

注意:在某些情况下,你可能需要更新你的编译器以支持C++11或更高版本的特性。在Windows系统中,如果你使用的是MinGW编译器,你也可能需要更新它。然后你可以在你的源代码文件中使用C++11的特性。需要注意的是,不同的IDE可能具有不同的设置方式,具体操作可以参考IDE的官方文档或者相关教程。总的来说,这两种方式都可以用于开启C++11支持,但它们的级别和作用范围不同。如果你需要使用C++14或者C++17的特性,你可以将上述行中的。在QT中编写C++程序并使用C++11特性时,你需要在你的。

2023-11-14 23:35:23 4045 1

原创 大端模式与小端模式转换函数?

怎么区分单片机的大小端模式 - 控制/MCU - 电子发烧友网。

2023-11-13 16:02:21 327

原创 【无标题】

本文笔者通过页表体系这条主线脉络,为大家串讲了一下之前介绍的虚拟内存管理以及物理内存管理的相关内容,在我们回顾完虚拟内存管理和物理内存管理之后,随后我们引出了虚拟内存如何与物理内存进行映射这个问题,并在这个过程中为大家揭露了页表的本质。在我们清楚了页表的本质之后,笔者又沿着页表体系的演进这条主线,对单级页表,二级页表,四级页表展开了介绍,其中花了一定的篇幅为大家详细的介绍了 32 位和 64 位页表项以及页目录想的比特位布局,让大家真真实实的看到了页表项和页目录项到底长什么样子。

2023-11-04 13:23:31 151

原创 面试题:用宏定义写出swap(x,y),即交换两数。

这个题考查宏定义的语法,尤其是多行代码的宏定义,加上do{}while(),,可以保证这些语句只执行一次。

2023-11-03 19:04:36 575

原创 面试题:一条语句判断一个数是否为 2 的若干次幂

一条语句判断一个数是否为 2 的若干次幂。

2023-11-03 17:32:53 138

原创 搞清Lighttpd、webserver、CGI、fastCGI这几个概念

网页浏览也是网络通信,浏览器相当于TCPclient客户端程序,和浏览器相对应的是机房里运行的网站服务器,里面运行着TCPserver服务端程序,因为网页传输使用的是HTTP协议(加密的是HTTPS协议),所以这个TCPserver程序必须按照HTTP协议(也就是按照HTTP协议来组包)来开发,因为这种程序专用于网站,所以叫webserver/httpserver。总而言之,FastCGI 是 CGI 的扩展,通过采用持久的应用程序进程池来处理传入请求,显着提高了 Web 应用程序的性能和资源利用率。

2023-11-01 20:16:27 1898

原创 用C语言将无符号整数转换为字符串

题目要求:用C语言编写实现如下函数,将无符号整数转换为字符串,例如将1234,转换为“1234”,不能使用itoa、sprintf等库函数。

2023-10-21 16:40:50 465

原创 求13张扑克牌原顺序(1-13扑克牌排序)

问题:如果要使得取出扑克牌的顺序为从小到大,即顺序为:A、2、3、4、5、6、7、8、9、10、J、Q、K,请使用C/C++编程求出最初扑克牌的顺序应该是什么。以后不断重复1,2的动作,直到所有的扑克牌取完为止。(1)将最上面一张牌放到这一摞牌的最下面。(2)然后将最上面的一张牌取出。

2023-10-18 19:05:16 1292 2

原创 epoll实现IO多路复用服务器代码

【代码】epoll实现IO多路复用服务器代码。

2023-10-17 17:18:21 59

原创 快速排序算法

【代码】快速排序算法。

2023-10-14 15:49:29 56

原创 面试题:有两个二维数组A[10][10],B[10][10],A中数据位置一一对应B数组所在位置,请写一个函数:任意给出一个数值(数组A中找出最接近值),在A中找到数值所在行列,找到B中对应值

【代码】面试题:有两个二维数组A[10][10],B[10][10],A中数据位置一一对应B数组所在位置,请写一个函数:任意给出一个数值(数组A中找出最接近值),在A中找到数值所在行列,找到B中对应值。

2023-10-14 09:04:46 101

原创 面试题:输入字符串,删除字符串内指定字符串,如输入“http://www.aotaidianqi.com/”,删除“ao”

【代码】面试题:输入字符串,删除字符串内指定字符串,如输入“http://www.aotaidianqi.com/”,删除“ao”

2023-10-13 18:45:34 47

linux 下利用 kermit 烧写 u-boot

linux 下利用 kermit 烧写 u-boot

2023-08-26

空空如也

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

TA关注的人

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