ch9350工作在模式4时如果正确响应caps lock等功能按键

当ch9350工作在4模式时,键盘按下caps lock等功能按键是上报了4个字节的数据,但是我按照图中的方式响应键盘却无反应,应该怎样正确响应?1591231672910308.jpg

您好,CH9350在CapsLock按键按下松开会有以下命令。

  1. 下位机会先给上位机发送一份CapsLock按下的命令57 AB 01 XXXXXXXX

  2. 再发送一份状态改变命令给上位机57 AB 80 X

  3. 接着上位机发送应答57 AB 12 XXXXXXXX

  4. 下位机发送一份CapsLock松开的命令57 AB 01 XXXXXXXX

    然后2和3会再重复两遍。

以上就是按键CapsLock按下时上位机和下位机的一个通信流程,其中具体的应答可以参考手册。其中状态2和状态4在这部分应该是一样的。


可是为什么按下松开capslock后,串口上报的数据几乎是无序的,这种情况是什么原因导致。代码里根本没法处理了

错误.png


您好,返回的这些数据的意义如下

57 AB 01 00 00 39 00 00 00 00 00:按键capslock按下

57 AB 01 00 00 00 00 00 00 00 00:按键capslock松开

57 AB 80 31:状态改变命令,最后一字节的低4比特为键盘指示灯状态,

57 AB 80 31:

上面这个“状态改变命令”是需要上位机应答的,一共11字节的应答,应答的命令如下

57 AB 12 X X X X "键盘report值" "当前状态" "状态值" "固定值/版本号" (具体的值可以参考手册CH9350DS.PDF的4.8和4.10)

根据您发送的截图,有很多的57 AB 80 31 ,您可以检查一下对这句状态改变命令的应答是否正确呢


请教一个问题:关于ch9350l工作状态切换。

ch9350l成对使用,s0和s1悬空。

下位机向上位机发送0x57 0xab 0x85 0x03,这样上位机是不是就被切换到工作状态3了?

但是下位机还在工作状态1,应该要怎么切换到工作状态3呢?


您好,如果成对使用CH9350直接发送特定命令给下位机的话,在下位机切换状态后,会自动发送应答命令给上位机,让上位机保持同步的状态切换。建议还是用引脚配置状态。


image.png

是按照这个格式发的,但是发过去之后,鼠标和键盘都控制不了了,从下位机串口读出来的还是状态一的数据。



您好,之前表述的不是很清楚,重新更新了一下。在使用CH9350时尽量不要切换状态,如果单独使用一个CH9350的话,可以用您发的这条命令进行切换,如果成对使用的话,尽量用硬件引脚配置状态,不要进行切换。



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