网站首页php

PHP7在windows下的串口通信

发布时间:2019-03-23 14:43:06编辑:slayer.hover阅读(5915)

    1. http://pecl.php.net/package/dio/0.1.0/windows 下载安装PHP7的php_dio.dll扩展包, 在 php.ini中添加配置extension=php_dio.dll, 重启PHP环境使之生效。

    2. PHP读写串口代码:

    <?php
    // 定义com口为com1,波特率为115200,数据位为8,停止位为1
    exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on');
    // 打开串口,O_RDWR为读写方式
    $ck = dio_open('COM1:', O_RDWR);
    if (!$ck) {
        die("打开串口COM1失败");
    }
    
    //写串口数据,将十六进制字符串为二进制字符串后写入,进行设备的格式设置,此处为某盖章机的部分指令格式。
    dio_write($ck, hex2bin("1A500101")); //设置盖章机格式左侧印章第一个位置盖章生效
    dio_write($ck, hex2bin("1A5601646464")); //设置盖章机盖章位置左侧印章使用第一个位置。并设置位置1:100mm,位置2:100mm,位置3:100mm
    dio_write($ck, hex2bin("1A530114")); //设置盖章机走纸速度为14
    dio_write($ck, hex2bin("1A500600")); //设置盖章机进入工作状态
    //dio_write ($ck, hex2bin("100402")); //查询印章机工作状态,此指令会有返回值
    //dio_write ($ck, hex2bin("100401")); //查询印章机异常状态,此指令会有返回值
    // 读取串口数据, 当串口有返回值时有效
    do {
        //读取串口并将读取到的数据赋值给变量‘$data’;
        $data = dio_read($ck);
    } while ($data == null);
    
    //将返回的二进制字符串转为十六进制并显示   
    echo bin2hex($data);
    
    //关闭串口
    dio_close($ck);
    echo '设置完成.';




评论

  • 昵称:2993635720@qq.com 来自:183.11.243.157发表于:2021-06-09 06:29:58
    我的 按照你这个做的 显示 Fatal error: Uncaught Error: Call to undefined function dio_open() in
  • 昵称:757220407@qq.com 来自:60.7.11.108发表于:2022-03-15 08:42:16
    为什么读取数据dio_read函数报错,读不到数据
  • 昵称:匿名 来自:123.149.75.67发表于:2022-03-24 19:44:32
    Call to undefined function dio_open() --------------------------------- 你的php_dio扩展没装好.