阅读:924回复:2
68013控制传输中的问题(给分)
我想用endpoint 0 向设备传输几条指令,是不是采用请求命令的方式BOOL DR_VendorCmnd(void)来实现呢?如果是的话在固件里该如何设置呢?我想有个例子参考一下,例如,向外设送一个80指令,指示设备进行初始化操作。该如何写程序呢?
可以给很多分的 |
|
沙发#
发布于:2003-10-02 11:13
是的,这样是一种方法,不过你也可以通过void SetupCommand(void)来进行,因为标准请求只有12个(我记得好像是)除了cy自定义的一些外还有很多没有用,因此你可以让bmRequestType = 0x80(表示标准请求),让bRequest = 0xb3(或者其他的值),然后在上面那个函数里加上下面的部分即可使用:
switch(SETUPDAT[1])//get descriptor { …… …… case 0xb3://0xb3号请求 ……//你的处理代码 …… break; …… } 你加上这段代码后,可以先用开发板测试,control panal上有哥vendreq的按钮,它后面的几个edit框里是一个vendreq的各个部分,在bReq里面填上0xb3,然有在固件里设置个断点,你就可以检测这个vendor request是否能被设备收到了。 |
|
板凳#
发布于:2003-10-02 12:00
我想知道的是比如说固件监测到EP0BUF里有数据,那么该怎么把数据传到译码单元的?这不应该是一个自动传输的过程啊,
我看到资料里说对EP0不用设置,那如果我想通过EP0输出一条指令给设备,应该怎么实现呢? 我的外设为CPLD的译码单元,该怎么把数据传过去啊?帮一下忙吧。我实在是不知道该怎么办了。因为我原来用GPIF方式通过EP2传指令后。读数据时经常出错,所以就想采用通过EP0进行控制传输 |
|