在运行时更改串行端口波特率并产生奇怪的影响

时间:2018-07-14 21:16:46

标签: php serial-port

我遇到了一个奇怪的问题-我必须在PHP代码运行时更改串行端口的波特率(从最初的300波特更改为更高的波特率),每次尝试时,下一个读取的字节就是零。

我已经在PHP中尝试了多种串行连接方式:

  • 用exec和stty命令配置的标准文件(在这种情况下为“ / dev / ttyUSB0”)的fopen / fread / fwrite
  • dio_open / dio_read / dio_write,使用dio_tcsetattr配置
  • 打开/读取/写入dio流(dio.serial类型)

我非常确定PHP本身有问题,因为Perl中的类似代码可以正常工作,并且波特率完全不会影响阅读。我检查了PHP和Perl脚本的strace日志,在配置串行端口的情况下,它们看起来几乎相同,因此问题出在其他地方。

1 个答案:

答案 0 :(得分:0)

通过修改php_dio扩展名解决了问题,该扩展名默认情况下无法在运行时切换波特率。