php 如何向串口发十六进制数。 php 如何向串口发十六进制数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是串口编程,一般要加载php_dio.dll(在php.ini中) 给出一个官方的地址,自己去找合适的版本吧。http://snaps.php.net/win32/pecl5.2-win32-latest.zip然后用dio_write函数就可以了。 如果我要发的十六进制是 58 ff ff 11 45我发的时候直接 dio_write($fd,'58 ff ff 11 45')这样用吗? 没用,把58等转换成ASCII字符再发.比如$data = "";$data .= chr(98);$data .= chr(255);$data .= chr(255);$data .= chr(17);$data .= chr(69); 找个监视COM端口的程序看看发的是什么就行了.估计你的程序别的地方有问题.光说"不行",是什么地方"不行"? 我有测试工具,数据能发出去,指示灯亮,如果发送的十六制数正确是58 ff ff 11 45 ,它也会有一个反馈信息,指示灯会这。现在是我能发出去。但收不到反馈信息,那说明发送的数不是十六制数58 ff ff 11 45 首先你对数据的理解不够准确。没有发十六进制数一说。数据只有一种,十六进制只不过是数据的一种方便人类阅读的外在表现。其次,chr传入的是一个十进制的数字,返回该十进制数字所代表的binary(当然你说ascii也行,但是这不准确)。而PHP里十六进制的处理应该是这样:$data="\x58\xff\xff\x11\x45"; 如果解释以下程序输出结果相同?<?php$data="\x58\xff\xff\x11\x45";for ($i=0; $i<strlen($data); $i++){ echo ord($data[$i]); echo " ";}echo "\n";$data = "";$data .= chr(98); $data .= chr(255); $data .= chr(255); $data .= chr(17); $data .= chr(69); for ($i=0;$i<strlen($data);$i++){ echo ord($data[$i]); echo " ";}echo "\n";?> 因为你已经人工地把十六进制转为十进制了。我没说你上面所发的ord的结果是错误的。只是说十六进制不需要人工转为十进制再用ord,完全可以用\x的方式。 php 获取checkbox问题? 网站代码过长求救 求导入导出.csv文件例子代码 开源网店系统 thinkPHP与oracle语句 用Snoopy类给THINKPHP框架的网站远程POST数据 令牌验证总是为真? php表格中嵌入数据 请教一个php + mysql 求月平均 求年平均的高效算法 phpstudy默认设置不支持pdo css图片路径怎么找 linux系统下安装php,make install是出错 帮我推荐几个国外的博客网站吧
如果我要发的十六进制是 58 ff ff 11 45
我发的时候直接 dio_write($fd,'58 ff ff 11 45')这样用吗?
比如$data = "";
$data .= chr(98);
$data .= chr(255);
$data .= chr(255);
$data .= chr(17);
$data .= chr(69);
估计你的程序别的地方有问题.
光说"不行",是什么地方"不行"?
现在是我能发出去。但收不到反馈信息,那说明发送的数不是十六制数58 ff ff 11 45
如果解释以下程序输出结果相同?<?php
$data="\x58\xff\xff\x11\x45";for ($i=0; $i<strlen($data); $i++)
{
echo ord($data[$i]);
echo " ";
}
echo "\n";$data = "";
$data .= chr(98);
$data .= chr(255);
$data .= chr(255);
$data .= chr(17);
$data .= chr(69); for ($i=0;$i<strlen($data);$i++)
{
echo ord($data[$i]);
echo " ";
}
echo "\n";?>