使用lua脚本在树莓派上读写串口

我目前正在一个项目中控制一个RS232设备通过Raspberry Pi 4。由于其他软件的限制,我不得不使用lua脚本,我从未编写过lua,即使我已经在Python中编写了代码...我已经在谷歌上搜索了很多,但没有找到任何有用的资料。

我希望我的樹莓能够打开串口,然后通过该串口读取和发送消息。

我已经尝试了lua用户wikistackoverflow上的此帖子(在Windows上读写),但两者都不能应用于树莓派。

如果有人能帮助那就太好了!这是我的Python代码,如果可以帮助您的话。

import serial

    def convertisseur(chemin):

        Tableau = []
        f = open(chemin)
        for row in f:
            Tableau.append(row)
        f.close
        return (Tableau)

    def statut(ser):
        ser.write(bytearray([0X53,0X07,0X01,0X01,0X41,0X60,0X00,0X73,0X45]));
        lecture=ser.readline()
        print(lecture);

return()

    def main():
            ser = serial.Serial('COM3', 115200, timeout=1)
            ser.close()
            ser.open()
            Code=convertisseur('C:/Users/Ello/Desktop/CodePosition.txt')
            statut(ser)
            ser.write(bytearray([0X53,0X09,0X01,0X02,0X40,0X60,0X00,0X06,0X00,0X2C,0X45]));
            ser.readline()

            ser.write(bytearray([0X53,0X09,0X01,0X02,0X40,0X60,0X00,0X0F,0X00,0X25,0X45,0X53,0X08,0X01,0X02,0X60,0X60,0X00,0X01,0XF5,0X45]));
            ser.readline()
            statut(ser)


            print('引擎移动多少厘米?-对于三角函数,停止以停止操作')
            Speed = input()
            while Speed != "STOP":
                speed = int(Speed)
                if speed > 38:
                    speed = 38
                if speed < -37:
                    speed = -37

                speed = round(abs((speed-38)))
                ser.write(bytearray(int(i, 16) for i in Code[speed-1].split(",")))
                ser.write(bytearray([0X53,0X09,0X01,0X02,0X40,0X60,0X00,0X0F,0X00,0X25,0X45,0X53,0X09,0X01,0X02,0X40,0X60,0X00,0X7F,0X00,0X55,0X45]));
                ser.readline()
                statut(ser)
                Speed = input()

            print("程序结束,端口关闭,发动机关闭")
            ser.write(bytearray(int(i, 16) for i in Code[60].split(",")))
            statut(ser)
            ser.close()
            return   0
点赞
用户8301479
用户8301479

我希望我的树莓派可以打开 COM 端口,然后通过该端口读取并发送消息。

您好,可以尝试使用 vsergeev/lua-periphery: A Lua library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux 这个库,特别是其中的 Serial 部分

我不确定这个开发路径是否适用于您。

在我的情况下,外设 COM 设备连接到 TTL-USB 转换器,然后连接到 Pi 的 USB,因此路径为 '/dev/ttyUSBx'。 据我所知,GPIO 也支持 UART 串行通信。

2022-06-24 06:19:34