社区
PHP
帖子详情
php 如何向串口发十六进制数。
lipingzhy
2009-04-21 04:30:56
php 如何向串口发十六进制数?
...全文
450
12
打赏
收藏
php 如何向串口发十六进制数。
php 如何向串口发十六进制数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Steve
2009-04-22
打赏
举报
回复
找个监视COM端口的程序看看发的是什么就行了.
估计你的程序别的地方有问题.
光说"不行",是什么地方"不行"?
Steve
2009-04-22
打赏
举报
回复
ok,没问题了.
surfchen
2009-04-22
打赏
举报
回复
因为你已经人工地把十六进制转为十进制了。我没说你上面所发的ord的结果是错误的。只是说十六进制不需要人工转为十进制再用ord,完全可以用\x的方式。
Steve
2009-04-22
打赏
举报
回复
[Quote=引用 9 楼 surfchen 的回复:]
首先你对数据的理解不够准确。没有发十六进制数一说。数据只有一种,十六进制只不过是数据的一种方便人类阅读的外在表现。
其次,chr传入的是一个十进制的数字,返回该十进制数字所代表的binary(当然你说ascii也行,但是这不准确)。而PHP里十六进制的处理应该是这样:$data="\x58\xff\xff\x11\x45";
[/Quote]
如果解释以下程序输出结果相同?
<?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";
?>
surfchen
2009-04-22
打赏
举报
回复
首先你对数据的理解不够准确。没有发十六进制数一说。数据只有一种,十六进制只不过是数据的一种方便人类阅读的外在表现。
其次,chr传入的是一个十进制的数字,返回该十进制数字所代表的binary(当然你说ascii也行,但是这不准确)。而PHP里十六进制的处理应该是这样:$data="\x58\xff\xff\x11\x45";
Steve
2009-04-22
打赏
举报
回复
既然你有测试工具,那么发送出去的是什么呢?
lipingzhy
2009-04-22
打赏
举报
回复
[Quote=引用 6 楼 runffer_yang 的回复:]
找个监视COM端口的程序看看发的是什么就行了.
估计你的程序别的地方有问题.
光说"不行",是什么地方"不行"?
[/Quote]
我有测试工具,数据能发出去,指示灯亮,如果发送的十六制数正确是58 ff ff 11 45 ,它也会有一个反馈信息,指示灯会这。
现在是我能发出去。但收不到反馈信息,那说明发送的数不是十六制数58 ff ff 11 45
lipingzhy
2009-04-21
打赏
举报
回复
[Quote=引用 4 楼 lipingzhy 的回复:]
引用 3 楼 runffer_yang 的回复:
没用,把58等转换成ASCII字符再发.
比如$data = "";
$data .= chr(98);
$data .= chr(255);
$data .= chr(255);
$data .= chr(17);
$data .= chr(69);
我试试看
[/Quote]
好像不行哟!!不知道是以十六进制发出去的。
lipingzhy
2009-04-21
打赏
举报
回复
[Quote=引用 3 楼 runffer_yang 的回复:]
没用,把58等转换成ASCII字符再发.
比如$data = "";
$data .= chr(98);
$data .= chr(255);
$data .= chr(255);
$data .= chr(17);
$data .= chr(69);
[/Quote]
我试试看
Steve
2009-04-21
打赏
举报
回复
没用,把58等转换成ASCII字符再发.
比如$data = "";
$data .= chr(98);
$data .= chr(255);
$data .= chr(255);
$data .= chr(17);
$data .= chr(69);
lipingzhy
2009-04-21
打赏
举报
回复
如果我要发的十六进制是 58 ff ff 11 45
我发的时候直接 dio_write($fd,'58 ff ff 11 45')这样用吗?
应该网
2009-04-21
打赏
举报
回复
如果是串口编程,一般要加载php_dio.dll(在php.ini中)
给出一个官方的地址,自己去找合适的版本吧。
http://snaps.php.net/win32/
pecl5.2-win32-latest.zip
然后用dio_write函数就可以了。
PHP
字符串和
十六进制
如何实现互相转换
主要介绍了
PHP
字符串和
十六进制
如何实现互相转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
PHP
通过
串口
实现
发
送短信
随技术进步,短信收
发
领域按时间先后产生了三种模式:BLOCK MODE,基于AT指令的TEXT MODE,基于AT指令的PDU MODE。其中,TEXT MODE比较简单,多款诺基亚手机均支持此款模式。西门子的手机大多
数
只支持PDU MODE。PDU 模式是收
发
短信的一种方法,短信正文经过
十六进制
编码后被传送。目前,PDU已取代BLOCK MODE。 SMS是由Etsi所制定的一个规范(GSM 03.40 和GSM 03.38)。当使用7-bits编码时,它可以
发
送最多160个字符;但用8-bit编码,最多可以
发
送140个字符,通常无法直接通过手机显示;还有用16-bit编码时,最多70个字符
PHP
向
串口
发
送
十六进制
码流的方法
在
PHP
中,在与
串口
进行通信时,一般
发
送的是
十六进制
。 在明确知道
发
送的
十六进制
命令时,我们可以使用以下方式
发
送: //向
串口
发
送读取指令 $cmd="\x01\x03\x00\x00\x00\x01\x84\x0A"; $connection->send($cmd); 然而,如果命令内容不确定时,我们需要动态的拼接命令内容字符串。此时,拼接完成后,需要将字符串转换为16进制来
发
送,可以使用以下方法转换。 字符串转16进制字符串: /** *字符...
php
发
送 16进制tcp指令,TCP接收
十六进制
数
据后再以
十六进制
发
送给设备
一、TCP接收
十六进制
的字符串以后:
PHP
Code复制内容到剪贴板/***TCP协议的端口收到
数
据*@paramswoole_server$serv*@param$fd*@param$from_id*@param$data*@returnbool*/publicfunctiononTcpReceive(swoole_server$serv,$fd,$from_id,$da...
java com
串口
16进制_在idea ssm项目中
发
送一条
十六进制
的
串口
Java程序
在idea ssm项目中
发
送一条
十六进制
的
串口
Java程序
发
布时间:2020-11-09 16:34:19来源:亿速云阅读:62作者:Leah这篇文章将为大家详细讲解有关在idea ssm项目中
发
送一条
十六进制
的
串口
Java程序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.前提idea ssm项目环境要配好,这里就不多赘述了,自己配好2.下载配...
PHP
20,359
社区成员
19,658
社区内容
发帖
与我相关
我的任务
PHP
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
复制链接
扫一扫
分享
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
php
phpstorm
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章