完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "CH57x_common.h"
UINT8 TxBuff[] = "This is a tx examrn"; UINT8 RxBuff; UINT8 trigB; int main() { UINT8 len; SetSysClock( CLK_SOURCE_PLL_60MHz ); /* 配置串口1:先配置IO口模式,再配置串口 */ GPIOA_SetBits( GPIO_Pin_9 ); GPIOA_ModeCfg( GPIO_Pin_8, GPIO_ModeIN_PU );// RXD-配置上拉输入 GPIOA_ModeCfg( GPIO_Pin_9, GPIO_ModeOut_PP_5mA ); // TXD-配置推挽输出,注意先让IO口输出高电平 UART1_DefInit(); while( 1 ) { len = UART1_RecvString( RxBuff ); if ( RxBuff[0]==0xaa&&RxBuff[1]==0xc0) { UART1_SendString( RxBuff, len ); } } } 刚刚 由于我需要传 BOS Descriptor 的内容,Microsoft OS 2.0 descriptor 长达 178 字节,但是我每次只能发送 64字节 我参考了官方示例的 USB 中断处理函数,其中 else { if ( chtype & 0x80 ) // 上传 { len = ( SetupReqLen > DevEP0SIZE ) ? DevEP0SIZE : SetupReqLen; SetupReqLen -= len; } else len = 0; // 下传 R8_UEP0_T_LEN = len; R8_UEP0_CTRL = RB_UEP_R_TOG | RB_UEP_T_TOG | UEP_R_RES_ACK | UEP_T_RES_ACK; // 默认数据包是DATA1 } 这里会将 len 设置成 64 (DevEp0Size),期望的是 Host 继续发同样的请求,并且 pSetupReqPak->wLength 为 178 - 64,但这并没有发生,我这里是不是做错了,需要怎么分包发送呢? |
|
相关推荐
1个回答
|
|
在端点0 的in会继续发送吧 直到发完
|
|
|
|
只有小组成员才能发言,加入小组>>
445 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2861 浏览 2 评论
2347 浏览 1 评论
793浏览 2评论
CH565W以太网,是必须有SKCKET中断才能发送数据吗?
423浏览 1评论
328浏览 1评论
用DVP采集图像,用UDP传给PC端,采集两帧后图像报错是什么原因?
464浏览 1评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
616浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 15:02 , Processed in 1.031401 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号