我用lpc1343枚举了一个USB HID键盘设备,描述符我用的USB 键盘的,以前用过没问题的。
用end1 发送键盘数据,但是空闲时段一直发送0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00.但是按键数据又是正常的,就是表象没什么影响。不知道会不会对别的有影响。我的程序如下:
void USB_EndPoint1 (uint32_t event)
{
switch (event) {
case USB_EVT_IN:
GetInReport();
if(InReport==1){
InBuff[2]=0x62;
USB_WriteEP(0x81, InBuff, sizeof(InBuff));
}
else{
InBuff[2]=0x00;
USB_WriteEP(0x81, InBuff, sizeof(InBuff));
}
break;
}
}
如果我把else里面的USB_WriteEP(0x81, InBuff, sizeof(InBuff));注释掉就发生了完全没有数据产生。这个算什么问题?希望有人指导下疑惑。
此帖出自
小平头技术问答
空闲的时候发送全0的数据包是没啥大问题的,就是有点占用总线的带宽,基本上也可以忽略了。
可以考虑只在按键状态发生变化时,才发送数据包。
我也想问一下这个问题,修改该怎么样修改,是修改USB的描述符还是修改端点的发送过程? HID不是可以在发生中断事件的时候再进行传输数据吗??这样的话是不是要修改某些描述符,请高人指点!!!!
谢谢soso姐,这个问题我在别的地方得到的答案也是对实际的应用没太大影响。如果不考虑带宽的情况。谢谢了。
另外他说的再按键发生改变时候发送数据。我也做过这样的处理。但是如果做了这样的处理就会导致没有数据发送。我用LED的亮灭来查看,发现会进入不了这个中断。
主要问题就是这个了。
[ 本帖最后由 utopiaprince 于 2010-7-2 20:33 编辑 ]在发生中断事件的时候再进行传输数据这个是决定具体数据的发送了。而且我发现在主函数里面直接往端点发送数据,结果是一样的。
感觉有点像串口发送的中断发送方式跟手动往BUFF里面写数据一样。
不知道理解的对不对。
一周热门 更多>