请问ch9329芯片可以用来设计一个带caps lock和num指示灯的usb键盘吗

现在已用协议传输模式实现了键盘按键的有效输入,请问这两个指示灯应该怎么实现呢?

您好,CH9329芯片在监测到主机按下Caps Lock和Num Lock时会通过串口输出当前的指示信息,具体见串口通信协议文档的CMD_GET_INFO指令。链接地址:http://www.wch.cn/downloads/CH9329EVT_ZIP.html 

image.png



您好!我选stm8s在iar中编程,

      第十二个字节返回值一直是0x00,即usb未连接计算器或未识别。第十一个字节返回值一直是0x00,即三个指示灯全是熄灭。

    usb已经正常连接,win10设置里的‘鼠标,键盘和笔’一栏中,可以看到‘wch  uart to kb-ms-v1,1 ’此设备,

也可以正常键盘输入,除了三个指示灯一切正常(笔记本按下caps lock,我自己制作的键盘不能亮起相应的指示灯)。

    串口通信模式选择了模式0;芯片工作模式0和1都试过,都不能实现指示灯功能

请问这是什么缘故。




u8 num=0;//定义全局变量

u8 buff[13];


main()

{

...........

//uart发送cmd-get-info指令

                Uart1_SendData(0x57); 

                Uart1_SendData(0xAB); 

                Uart1_SendData(0x00); 

                Uart1_SendData(0x01);

                Uart1_SendData(0x00);

                Uart1_SendData(0x03);

                

}


/*    串口1接收数据中断服务函数    */

#pragma vector = 20              //设置串口1接收中断向量号 = 20

__interrupt void UART1_RX_RXNE(void)

{          


  UART1_SR_RXNE = 1;     //清除中断标志

  buff[num] = UART1_DR;        //读出串口接收到的数据

  num=num+1;

  if(num==14)

    num=0;

 

  //CAPS LOCK =1;SCROLL LOCK=0

   if((buff[13]==0xBE)&&(buff[12]==0x31)&&(buff[11]==0x01)&&(buff[10]==0x02)

     &&(buff[9]==0x00)&&(buff[8]==0x00)&&(buff[7]==0x00)&&(buff[6]==0x00)&&(buff[5]==0x00)

       &&(buff[4]==0x08)&&(buff[3]==0x81)&&(buff[2]==0x00)&&(buff[1]==0xAB)&&(buff[0]==0x57))

  {

    PD_ODR_bit.ODR1=1; 

    PD_ODR_bit.ODR4=0;

  }

}


大佬救命


您好 ,指示灯主动通过串口通知的版本的在新版本的CH9329芯片上才支持的,按照如下方式,您先看下当前使用芯片的版本号信息。“设备管理器”->选择CH9329对应的“键盘”->右击“属性”->"详细信息"->"硬件ID",若如下字符REV版本号低于V3400则不支持该功能,建议按照如下联系方式,向我们申请样片测试。

image.png


我帖子里的版本比这个还低  @TECH39帮我看下呗


楼上遇到的问题,和版本号没有关系的,请知悉。您可以单独联系我,我们帮您远程看下问题所在。我将微信号私信你。


您好,我新买了版本是rev3400的芯片进行测试,芯片的版本是v1.4,我看到数据手册上只写了v1.0和v1.1,芯片仍然是无法识别计算器,请问这是哪里出错了。


请问可以私信一下详细交流吗



请问可以私信一下详细交流吗



您好,已通过微信,可具体沟通细节问题。


我用串口连接9329和PC,收发信息都正常,可以发送按键数据和接收返回信息,也可以查询到芯片版本等信息,但是接在PC上的另一个普通键盘,第一次按下Num Lock芯片不会接收到串口信息,第二次及以后再按都可以正常接收到,复位芯片以后还是这个情况,请问这是什么问题啊?


您好,如上现象不太正常,芯片是不会记录第几次按下按键的状态的。此外您可以发邮件和我沟通,我确认下您使用的版本。tech@wch.cn


image.png

image.png


就是这两个版本信息吧?我的9329直接焊在串口芯片上了,所以只能用USB模式查看信息


您好,如上版本可正常支持其他键盘有指示灯变化,CH9329串口输出对应状态的功能。不排除一个可能,就是您使用的计算机并没有通过USB通道将第一次的NumsLock状态下传给CH9329芯片。可使用USB抓包工具捕获下CH9329的USB通道数据,看下第一次实际有没有下传USB数据。


1650950922(1).png这张图是普通键盘Num Lock灯亮时9329复位,然后按Num Lock的数据,9329未收到相应状态改变的信息


image.png

这张图是普通键盘Num Lock灯灭时9329复位,然后按Num Lock的数据,9329收到相应状态改变的信息


请帮忙分析一下吧,谢谢


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