繁体   English   中英

从Windows到Linux的PHP USB串口调用

[英]PHP USB serial port call from Windows to Linux

我有一段简单的代码,适用于Windows - WAMP环境,例如

<?php

`mode com3: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;

file_put_contents(com3, chr(1).chr(255).chr(1).chr(4).chr(64).chr(5));

?>

它通过USB电缆(使用USB串行驱动程序)连接到电路板以点亮某些LED,并且工作正常 - 因此类似于232Analyser的Windows软件可以连接到COM3并在DEC中发送代码,如1,255,255,255,255,5,以及点亮LED。 数字255是DEC编号:1,2,4,8,16,32,64,128,255,它将根据调用的数字点亮某个LED。

无论如何,上面的代码在Windows上工作正常,并通过调用此PHP文件点亮LED。 所以可以调用一个URL: http://localhost/lightled.php ,它可以正常工作。

现在我需要它通过Linux在Raspberry Pi上工作,所以我刚刚安装了标准的Raspberry Linux和Apache的PHP。

然后连接USB线,它显示为/ dev / ttyUSB0我有CHMOD 777 / dev / ttyUSB0

并将PHP代码更改为:

<?php

`mode /dev/ttyUSB0: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;

file_put_contents('/dev/ttyUSB0', chr(1).chr(255).chr(1).chr(4).chr(64).chr(5));

?>

但是,在浏览器中在Linux上调用此文件并不像在Windows上那样点亮LED。

现在,当我调用此文件时,它没有错误,没有chmod 777,它给出了一个权限被拒绝错误。 所以看起来它可以通过,但其他错误。

所以问题是任何人都知道如何使它在Linux上工作,可能是我调用USB错误,或者Raspberry Linux需要某种驱动程序,或者“模式”需要以不同的方式定义...或者可能是小数/发送的二进制代码不正确,如“chr(2)”等需要不同,并且不会以相同的方式在LAMP设置上发送。

关于我可以尝试的任何想法?

谢谢。

`mode /dev/ttyUSB0: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;

Linux中没有mode命令。

最接近的等价物是stty ,但它不需要相同的命令行参数。 你需要进行一些翻译; 有关详细信息,请阅读stty的手册页。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM