完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我阅读了ch55x的手册,关于bUEP_R_RES / bUEP_T_RES有点疑惑,当遇到控制传输就搞得更糊涂了。我发现在状态阶段,收到了IN事务,代码写的是UEP0_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK。在状态阶段,收到了OUT事务,代码写的是UEP0_CTRL |= UEP_R_RES_ACK | UEP_T_RES_NAK。一个是=另一个是|=。为什么要这样写能解释一下吗?
还有就是每次放入Ep0Buffer的数据是为了下一次IN事务准备的对吗,这就是为啥在setup阶段就开始填写Ep0Buffer了? |
|
相关推荐
1个回答
|
|
Uep0_ctrl默认复位值都为0,等于是直接给寄存器赋后面的值,而或等是在不改变寄存器原先值的基础上再把相应位置1,如果寄存器其他位为0的话这两种写法效果是一样的。
Ep0buffer缓冲区指向的是端点0的dma地址,如果有数据要上传时需要先把数据准备好,等待主机发IN令牌包来取数据。 |
|
|
|
只有小组成员才能发言,加入小组>>
523 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2904 浏览 2 评论
2400 浏览 1 评论
870浏览 2评论
689浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
418浏览 1评论
531浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
814浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 02:49 , Processed in 1.073829 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号