基于GD32F103移植freemodbus从机库

news2024/11/20 0:29:31

首先说明github下载的freemodbus开源库不可以使用,需要修改

准备资料

下载一个freemodbus开源库

https://gitee.com/chejia12/freemodbus

开源库目录结构

在这里插入图片描述

建立文件夹 src inc port

  1. 将functions内部文件放入src文件夹
  2. 将rtu内部的c文件放入src文件夹,h文件放入inc文件夹
  3. 将mb.c放入src文件夹
  4. 将demo/MSP430/port下的文件放入port目录
  5. 在port目录下建立一个应用层APP文件modbus_app.c

在这里插入图片描述

移植

  1. 自己建立一个含有串口和基本定时器功能的基础工程

  2. 添加文件到工程

  3. 添加头文件路径

  4. 修改msp430的portserial.c 和porttimer.c文件

  5. 在对应的中断函数内部调用对用的函数

  6. 添加app文件

  7. 修改mbrtu.c文件;这里的eMBRTUSend()函数内部需要手动发起一次数据发送

  8. 修改mbfunccoils

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1389548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ICCV2023 | VL-Match: 使用Token-Level和Instance-Level Matching提升视觉语言预训练

论文标题:VL-Match: Enhancing Vision-Language Pretraining with Token-Level and Instance-Level Matching 代码:None 单位:中国科学院北京计算技术研究所 中国科学院大学 微软 在VLP种,通常采用两种预训练任务&#xff0…

IF=16.6 | Quick CTL细胞免疫佐剂免疫HLA转基因小鼠,助力TCR- T细胞构建!

023年10月12日,中国科学院微生物研究所高福研究团队和谭曙光研究团队于Nature Communications发表了题为KRAS G12V neoantigen specific T cell receptor for adoptive T cell therapy against tumors的研究论文。 影响因子:16.6 Doi:KRAS G…

免费scrum管理工具Leangoo敏捷做缺陷跟踪管理

缺陷管理通常关注如下几个方面: 1. 缺陷的处理速度 2. 缺陷处理的状态 3. 缺陷的分布 4. 缺陷产生的原因 使用Leangoo敏捷看板我们可以对缺陷进行可视化的管理,方便我们对缺陷的处理进展、负责人、当前状态、分布情况等各个方面一目了然。 下面我们…

ATFX汇市:美元指数延续反弹态势,USDCHF年内已涨超2%

ATFX汇市:上周五和本周一,美元指数均以阳线收盘。今日盘中,美元指数呈中阳线形态,如果晚间的美国1月纽约联储制造业指数没有爆冷,美元指数今日以阳线收盘的概率极高。连续三日以阳线收盘,意味着美元指数的反…

文件的创建时间可以修改吗,怎么改?

文件的创建时间可以修改吗,怎么改?文件的创建时间是由操作系统自动生成并记录的,通常情况下无法直接修改。创建时间是文件的属性之一,它反映了文件在文件系统中的生成时间。一旦文件被创建,其创建时间就被确定下来&…

FEP水质取样器应用环境检测无溶出析出深水取样器

FEP水质取样器是一种用于采集水样的工具,它具有以下特点: 1.抗腐蚀性强:FEP材料具有出色的耐腐蚀性,可以在各种恶劣的水质环境中使用。 2.热稳定性好:FEP材料具有良好的热稳定性,能够在高温环境下保持结构完…

发送HTTP POST请求并处理响应

发送HTTP POST请求并处理响应是Web开发中的常见任务。在Go语言中,可以使用net/http包来发送HTTP POST请求并处理响应。 以下是一个示例代码,演示了如何发送HTTP POST请求并处理响应: go复制代码 package main import ( "b…

MessageBox:HubSpot x Facebook全方位对接!

在当今数字化营销的浪潮中,将多个业务系统高效整合成为推动企业成功的核心。HubSpot作为一体化的市场营销平台,与Facebook的整合通过强大的工具——MessageBox,为企业提供了更灵活、高效的整合方案。今天运营坛将深入探讨在HubSpot平台上整合…

Intel Processor Trace(一)

文章目录 前言一、Features and Capabilities1.1 Packet Summary 二、Intel Processor Trace Operational Model2.1 Change of Flow Instruction (COFI) Tracing2.1.1 Direct Transfer COFI2.1.2 Indirect Transfer COFI2.1.3 Far Transfer COFI 2.2 Software Trace Instrument…

PLC远程控制网关:实现智能化生产的关键

近年来,随着工业自动化的快速发展,越来越多的企业开始采用PLC远程控制网关来实现生产过程的智能化管理。这种创新的技术不仅能够提高生产效率,还可以降低成本,并且为企业带来更多的商业机会。 PLC远程控制网关是一种基于互联网的…

贵阳贵安持续打造面向全国的算力保障基地

作者:黄玉叶 当前,新一轮科技革命和产业变革正在重塑全球经济结构,算力作为数字经济的核心生产力,成为全球战略竞争的新焦点。2021年5月,国家发展改革委、中央网信办、工业和信息化部、国家能源局联合印发《全国一体化…

【昕宝爸爸小模块】深入浅出之JDK21 中的虚拟线程到底是怎么回事(二)

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你👍点赞、🗂️收藏、加❤️关注哦。 本文章CSDN首发,欢迎转载,要注明出处哦! 先感谢优秀的你能认真的看完本文&…

Linux------进程的fork()详解

目录 前言 一、fork()的使用 二、fork()的返回值 我们为什么要创建子进程? 父进程与子进程的分流 三、fork的一些难理解的问题 1.fork干了什么事情? 2.fork为什么会有两个返回值 3.fork的两个返回值,为什么会给父进程返回子进程pid…

Linux Mii management/mdio子系统分析之六 fixed-mii_bus分析(mac2mac分析)

(转载)原文链接:[https://blog.csdn.net/u014044624/article/details/130674908] (https://blog.csdn.net/u014044624/article/details/130674908) 前面几章我们介绍了MDIO模块的大部分内容,针对mii_bus、mdio_bus、phy_device、p…

鸿蒙开发的前景趋势及薪资水平展望

随着科技的迅猛发展和数字化转型的推进,鸿蒙系统作为国内领先的分布式操作系统,已经在市场中崭露头角,展现出独特的技术优势和广阔的应用前景。对于开发者而言,掌握鸿蒙开发技能不仅意味着拥有更多的职业发展机会,还预…

Win10输入密码不满足密码策略要求的解决方法

在Win10电脑中用户输入密码的时候,收到了不满足密码策略要求的提示,导致用户不能成功设置密码。用户先打开Win10系统的组策略编辑器,点击关闭密码必须符合复杂性要求功能保存即可。以下小编将分享Win10密码不符合策略要求的解决方法步骤&…

Relation-Aware Graph Transformer for SQL-to-Text Generation

Relation-Aware Graph Transformer for SQL-to-Text Generation Abstract SQL2Text 是一项将 SQL 查询映射到相应的自然语言问题的任务。之前的工作将 SQL 表示为稀疏图,并利用 graph-to-sequence 模型来生成问题,其中每个节点只能与 k 跳节点通信。由…

Linux -- firewalld的富语言规则

1. Firewalld支持两种类型的NAT:IP地址伪装和端口转发。 (1)IP地址伪装 地址伪装(masquerade):通过地址伪装,NAT 设备将经过设备的包转发到指定接收方,同时将通过的数据包的源地址更改为其自己的…

WBTT:“Fair Launch”如何做到更加公平

铭文是一种全新的资产发行方案,它让非图灵完备的链上生态具备发行资产的能力,而铭文赛道的兴起也让比特币生态再次回到加密世界的中心。铭文市场的兴起,更被称之为“散户的狂欢”,因为这种“Fair Launch”的启动方式正在让所有参与…

Webpack 怎么实现按需异步加载模块

要弄懂这个问题,需要先来看关于webpack打包的3个问题。 三个问题 第一个问题 项目中的json文件,如何使用webpack进行处理? 如果我们希望把json文件当做静态配置,例如有如下json文件 {"version": "1.0.0"…