python3将串行数据发送到Nextion Display

时间:2016-02-17 10:42:53

标签: python python-3.x serial-port pyserial

我试图通过Python3脚本控制Nextion Display。

使用Windows终端我能够控制它。

例如,为了更改控件的文本,我发送以下内容:

t0.txt ="测试"然后是3次0xFF通过"发送十六进制"

我使用PySerial的Python3脚本如下:

import serial
s = serial.Serial(port='COM5',baudrate=9600)
escape='\xff'.encode('iso-8859-1')
test=b't0.txt="test"'
s.write(test)
s.write(escape)
s.write(escape)
s.write(escape)
s.close()

但它不起作用。

有什么想法吗?

非常感谢

3 个答案:

答案 0 :(得分:1)

在gpiopins上的raspberry pi3上读取nextion EEPROM中的字节。

#import time
import serial

ser = serial.Serial(
    port='/dev/ttyS0',
    baudrate =9600,           
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1)
commandToSend = b'rept 0,32\xff\xff\xff' #read 32 bytes of hex data from EEPROM to UART, start address is 0
while True:
    ser.write(commandToSend)
    #time.sleep(0.5)
    x=ser.readline()    
    print (x)

答案 1 :(得分:0)

您可以尝试以下代码:

import serial
import time
import struct

ser = serial.Serial("/dev/ttyAMA0")
print ser
time.sleep(1)
i=1
k=struct.pack('B', 0xff)
while True:
    ser.write(b"n0.val=")
    ser.write(str(i))
    ser.write(k)
    ser.write(k)
    ser.write(k)
    print " NEXT"
    time.sleep(1)
    i=i+1

答案 2 :(得分:0)

import time
import serial

ser = serial.Serial(
  port='/dev/ttyAMA0',
  baudrate = 9600,
  parity=serial.PARITY_NONE,
  stopbits=serial.STOPBITS_ONE,
  bytesize=serial.EIGHTBITS,
  timeout=1
)

while 1:
  EndCom = "\xff\xff\xff"
  write('t0.txt="Hello World"'+EndCom)