zoukankan      html  css  js  c++  java
  • libmodbus库linux 嵌入式设备中的使用

    libmodbus库的交叉编译:
    1】到libmodbus官网https://libmodbus.org/download/下载安装包,内部自带configure文件,官网推荐v3.1.6稳定版。
    另外注意,如果是从github上克隆源码的,则包里没有configure文件,需要额外安装部分软件,才能生成configure脚本。
    github下载需要安装额外软件(官网下载跳过):
    sudo apt install autoconf
    sudo apt install automake
    sudo apt install libtool
    ./autogen.sh
    即可生成configure文件。
    2】解压安装包:tar zxvf libmodbus-3.1.6.tar.gz
    3】进入安装包:cd libmodbus-3.1.6
    4】创建文件夹,存放编译输出:mkdir install
    5】source交叉编译环境变量:source ~/Downloads/neoway-arm-oe-linux/neoway-env-init.sh,根据实际目录调整
    6】配置交叉编译器:./configure --host=arm-oe-linux-gnueabi --enable-static --prefix=/home/a/gitlab-ws/libmodbus-3.1.6/install/,注意prefix目录改为第4】步创建的目录(pwd命令可查看路径,复制即可)
    7】make
    8】make install

    这样就会在刚刚创建的install文件夹下,看到include,lib,以备主程序调用。
    将lib下的3个动态库libmodbus.so.x.x,项目所在环境的/usr/lib目录。

    使用:

    在项目makefile文件中  -L./lib -lmodbus 在调用函数的c文件中引入.h文件

    modbus的初始化对象操作和设置参数

    ctx = modbus_new_rtu("/dev/ttyHSL0", 9600, 'N', 8, 1);
    
        //set slave modbus addr defalut is 3
    
        modbus_set_slave(ctx, 3);
    
        //set modbus timeout 3s 
    
        modbus_set_response_timeout(ctx, 3, 0); //sec,usec,超时设置 设置为3s
    
        //modbus_set_byte_timeout(ctx, 0, 800*1000);//800ms
    
        if (modbus_connect(ctx) == -1)
    
        {
            fprintf(stderr, "Connection failed: %s
    ", modbus_strerror(errno));
    
            modbus_free(ctx);
    
            return -1;
        }

    modbus读取输入寄存器实例

    uint16_t inv_data_buf[125] = {0}; //每帧最多125个寄存器,官方规定
    memset(inv_data_buf, 0, sizeof(inv_data_buf));
    int len =modbus_read_input_registers(ctx, 1000, 56, inv_data_buf); //1000 56
    if (len < 0)
      {
         printf("[error] read 3x registers: (%d)
    ", len);
         return -1;
      }
    他只是向前航行,脚下是沉静碧蓝的大海,而头顶是金色的太阳。
  • 相关阅读:
    window.showModalDialog使用手册
    javascrīpt 对象的定义
    导航上用CSS标志当前页效果的实现
    数据库中的命名规则
    Oracle数学函数
    实现 asp 的服务器无刷新推技术
    UML建模工具比较
    Oracle日期函数
    神秘的 ORACLE DUAL
    Podcast Publisher——一个综合了多种入门知识的小Web应用
  • 原文地址:https://www.cnblogs.com/bliss-/p/12376424.html
Copyright © 2011-2022 走看看