CH9328发送右WIN失败如何解决?1位的键盘码如何发送?

2020-07-07_121345.png

我是用树莓派控制一台刷了Android系统的电脑。

pi@raspberrypi:/ $ python
Python 3.7.3 (default, Apr  3 2019, 05:39:12) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> import time
>>> ser = serial.Serial(
...     port ='/dev/ttyUSB6',
...     baudrate=9600,
...     parity=serial.PARITY_NONE,
...     stopbits=serial.STOPBITS_ONE,
...     bytesize=serial.EIGHTBITS,
...     timeout=1)
>>> ser.write(bytes.fromhex('0000800000000000000000000000000'))
Traceback (most recent call last):
  File "", line 1, in 
ValueError: non-hexadecimal number found in fromhex() arg at position 31
>>>

右WIN对应的键盘码是8,只有1位,本来按下和释放32位,这少了一位就发送失败了。我也不能加0,8后面加0就变80了,80是声音变大,8前面加0也不对,变成08了,对应键盘码e。

2020-07-07_120908.png


您好,使用透传模式时,CH9328对应的一包键盘数据为8字节,所以无论是按键还是释放都需要发8个字节。对于释放发送:8个0x00,对于右Win键:第一个字节改成0x80即可,后面7个0x00。注:建议发送键值和释放键值间增加5~10ms间隔。


只有登录才能回复,可以选择微信账号登录