tagetage 发表于 2022-4-9 17:04

【沁恒CH582】7 求助沁恒---控制USB键盘指示灯

<p><span style="font-size:20px;">CH582开发板上有一个USB接口,可以接键盘鼠标等外设,我想用CH582控制USB键盘的LED指示灯,在实践中遇到问题,希望沁恒官方人员帮忙。<br />
<strong>基础知识:</strong><br />
一般的键盘有三个指示灯,分别是Num Lock指示灯、Caps lock指示灯、scroll lock指示灯。<br />
Num Lock指示灯-----点击小键盘左上角的Num Lock键即可开启,开启后可以输入小键盘上的数字。<br />
Caps lock指示灯-----点击Caps Lock键可以开启该指示灯,该键的作用是大小写转换。<br />
scroll lock指示灯-----点击键盘上的ScrollLock键即可开启该指示灯,它是滚动锁定键。</span></p>

<p><span style="font-size:20px;"><strong>键值:</strong><br />
Num Lock-----83---0X53<br />
Caps lock-----57---0X39<br />
scroll lock-----71---0X47<br />
Locking Caps Lock-----130---0X82<br />
Locking Num Lock-----131---0X83<br />
Locking Scroll Lock-----132---0X84</span></p>

<p><span style="font-size:20px;"><strong>遇到的问题:</strong><br />
1,我使用官方的例程HostU2Enum可以正确打印键值,按一下Num Lock键,Num Lock指示灯可以点亮,但是再按一下就不熄灭,程序名字是SETorOFFNumLock,应该是可以设定Num Lock灯的亮和灭,但我看了好半天也不知道在哪里修改。<br />
2,我还需要控制Caps Lock和Scroll Lock指示灯的亮灭,其中OUT的数据在哪里修改,我也没有找到。<br />
3,OUT数据是下面程序中tmp[] = {0x21, 0x09, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00};倒数第二个字节的0X01吗?</span></p>

<p><span style="font-size:20px;"><strong>CH58x_usb2hostClass.c中</strong></span><span style="font-size:16px;">/*********************************************************************<br />
&nbsp;* @fn &nbsp; &nbsp; &nbsp;U2SETorOFFNumLock<br />
&nbsp;*<br />
&nbsp;* <a href="home.php?mod=space&amp;uid=159083" target="_blank">@brief</a> &nbsp; NumLock的点灯判断<br />
&nbsp;*<br />
&nbsp;* @param &nbsp; buf &nbsp; &nbsp; - 点灯键值<br />
&nbsp;*<br />
&nbsp;* <a href="home.php?mod=space&amp;uid=784970" target="_blank">@return</a> &nbsp;错误码<br />
&nbsp;*/<br />
uint8_t U2SETorOFFNumLock(uint8_t *buf)<br />
{<br />
&nbsp; &nbsp; uint8_t tmp[] = {0x21, 0x09, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00};<br />
&nbsp; &nbsp; uint8_t len, s;<br />
&nbsp; &nbsp; if((buf == 0x53) &amp; (buf | buf | buf | buf | buf | buf | buf == 0))<br />
&nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; for(s = 0; s != sizeof(tmp); s++)<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ((uint8_t *)pU2SetupReq)<strike> = tmp<strike>;</strike></strike><br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; s = U2HostCtrlTransfer(U2Com_Buffer, &amp;len); // 执行控制传输<br />
&nbsp; &nbsp; &nbsp; &nbsp; if(s != ERR_SUCCESS)<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return (s);<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; return (ERR_SUCCESS);<br />
}</span></p>

tagetage 发表于 2022-4-9 17:07

<p>我贴的程序后面怎么有横线?????</p>

soso 发表于 2022-4-9 17:13

tagetage 发表于 2022-4-9 17:07
我贴的程序后面怎么有横线?????

<p>别急 我问问技术:)</p>

nmg 发表于 2022-4-27 17:44

<p>这个问题是不是还没解决?</p>

tagetage 发表于 2022-4-27 20:22

nmg 发表于 2022-4-27 17:44
这个问题是不是还没解决?

<p>前2天已经将问题反馈给soso,soso和技术已经有沟通并正在处理,具体情况你单聊soso。</p>

nmg 发表于 2022-4-28 10:07

tagetage 发表于 2022-4-27 20:22
前2天已经将问题反馈给soso,soso和技术已经有沟通并正在处理,具体情况你单聊soso。

<p>说的不是一件事情,这个帖子不是求助沁恒吗,问题我看沁恒还没回复,想问你是不是解决了,需要再找沁恒帮忙看看吧</p>

tagetage 发表于 2022-4-28 10:18

nmg 发表于 2022-4-28 10:07
说的不是一件事情,这个帖子不是求助沁恒吗,问题我看沁恒还没回复,想问你是不是解决了,需要再找沁恒帮 ...

<p>我求助的问题还没有解决,沁恒作为厂家不着急回复,我就更一点也不急了。</p>
页: [1]
查看完整版本: 【沁恒CH582】7 求助沁恒---控制USB键盘指示灯