簡體   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