TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2540usbHID 的out 端点

in    mcu—>pc

out pc —> mcu 

我使用的例程HIDAdvRemoteDongle,已经把它改成一个自定义的hid设备,端点1为in  端点2 为out

现在 in端点能成功发送数据通过: hidSendHidInReport();  //  (data , endpoint number , length of data)    send data to pc 

但是pc机通过上位机发送数据给cc2540,我不知道发送成功后,单片机会在哪里接收到,并处理。主要是处理函数在哪里。

Yan:

史蒂文,

PC 发出来的话,应该是output report.

正常情况下,是在遥控器的write callback函数里会收到。

steven wang3:

回复 Yan:

只是单纯考虑 PC机与USBDongle的数据通信

关于usbHid通信的一个函数(这是通过usbdongle 往计算机 发送 数据的函数)

void usbfwWriteFifo(uint8 volatile __xdata *pFifo, uint8 count, void __generic *pData){ uint8 __generic *pTemp = pData; if (count) { do { *pFifo = *(pTemp++); } while (–count); }}

同时也有一个这样的函数

void usbfwReadFifo(uint8 volatile __xdata *pFifo, uint8 count, void __generic *pData){ uint8 __generic *pTemp = pData; if (count) { do { *(pTemp++) = *pFifo; } while (–count); }} // usbfwReadFifo

这个函数是读pc机通过UsbHID发送数据给usbDongle的。

那么什么时候会调用这个函数?换句话说就是,我怎么得到pc机通过hid发送给usbdonggle的数据?

steven wang3:

回复 Yan:

我通过轮询的方式 来获得 pc 发送到 cc2540的数据

在这个函数中void usbHidProcessEvents(void)

但发现,第一次将数据从pc通过端点2发送到cc2540上,可以成功,并且数据是正确的,但第二次就不行。

(我的上位机是自己写的,之前用其他芯片测试过,没有问题,就是不明白为什么第二次发送  usbDongle就好像出问题了)

steven wang3:

回复 Yan:

// ************************ USB interrupt event processing ********************************

void usbirqHookProcessEvents(void)

{ /

/ Handle events that require immediate processing here

} 找到这样的函数,注释理解应该就是usb中断了吧。 但发现却没有任何函数调用,并且发送数据的时候也不会调用这个函数。是不是1.4的协议栈也是还没写全?

感觉好像有挺多地方还没写好哦。

希望给个回复,谢谢。

目前没解决的问题

1.pc机发送数据到USBDongle时会调用哪个函数(是不是只能轮询)

2.通过轮询方式发送数据,只有第一次成功,不知如何解决。

steven wang3:

回复 steven wang3:

有没有人知道呢。?

da qin zheng sheng:

在中断函数里!

steven wang3:

回复 da qin zheng sheng:

// ************************ USB interrupt event processing ********************************

void usbirqHookProcessEvents(void)

{ /

/ Handle events that require immediate processing here

中断函数好像没调用过。。

不知道是不是那个

bamboo:

请问如何更改自定义的Hid设备

haha ren:

回复 steven wang3:

Hi, steven,我现在也遇到了与你同样的困惑,在usbHidProessEvents函数中处理时Dongle只能成功接收一次PC端发来的数据,不知道你之前的疑惑现在有没有解决,请指教,谢谢

shengqi an:

回复 bamboo:

自定的hid设备需要学习usb hid协议之后,更改usb_hid_descriptor.s51文件即可,亲测好使!

赞(0)
未经允许不得转载:TI中文支持网 » CC2540usbHID 的out 端点
分享到: 更多 (0)