网站首页php
PHP7在windows下的串口通信
发布时间:2019-03-23 14:43:06编辑:slayer.hover阅读(5711)
在http://pecl.php.net/package/dio/0.1.0/windows 下载安装PHP7的php_dio.dll扩展包, 在 php.ini中添加配置extension=php_dio.dll, 重启PHP环境使之生效。
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 '设置完成.';
评论