完善资料让更多小伙伴认识你,还能领取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会继续发送吧 直到发完
|
|
|
|
只有小组成员才能发言,加入小组>>
514 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2901 浏览 2 评论
2394 浏览 1 评论
857浏览 2评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
399浏览 1评论
678浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
411浏览 1评论
511浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 22:15 , Processed in 1.375304 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号