• 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;
      }
    他只是向前航行,脚下是沉静碧蓝的大海,而头顶是金色的太阳。
  • 相关阅读:
    IIS日志分析
    Linux 管理软件
    lodop打印收费小票
    文件上传,服务端压缩文件方法,重点是png与gif图片的压缩,保证了透明度与动画
    设置表格隔行变色,以及鼠标悬浮变色效果
    地址下拉框,需要js级联js
    下拉框多级联动辅助js,优化您的下拉框
    给下拉框加上可输入查询特性,包括中文与拼音首字母
    判断浏览器客户端是不是移动客户端
    url重定向或者重写
  • 原文地址:https://www.cnblogs.com/bliss-/p/12376424.html
Copyright © 2020-2023  润新知