你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

USB_OTG_FS虚拟串口,设备模式下 执行IN端点类中断的时候,进行发送的操作,是批量传输而非同步传输?

[复制链接]
stm32liusheng 提问时间:2022-11-2 21:43 / 未解决
在407的虚拟串口程序中有看到,将端点配置为批量传输端点。
在IN端点类传输完成中断中调用函数USB_OTG_EPStartXfer中有2步骤操作,一是使能端点DIEPCTL的EPENA位,使能端点传输;二是 在判断为同步传输的情况下 执行发送数据USB_OTG_WritePacket函数 完成数据到DFIFO压栈操作发送数据。
据我后面的测试 注释掉同步传输代码,能正常IN数据返还。
那么的第一步操作 【使能端点的DIEPCTL寄存器,USB自动会发送IN数据吗??
没看到相关解释,这是硬件机制吗? 使能了端点传输,然后确定了此次传输的xfer的地址和传输大小。自动传输?
自动写入DFIFO  而不是调用USB_OTG_WritePacket函数写入DFIFO?
  1. depctl.b.cnak = 1;
  2.     depctl.b.epena = 1;//使能端点  启动数据发送 在这的数据也就直接发送 ,因为前面已经规划好此次IN传输的数据大小在DIEPCTL寄存器
  3.     USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPCTL, depctl.d32); //写到中断控制寄存器 使能端点x的中断控制寄存器
  4.     //"应用程序将此位置 1 以在端点上启动数据发送。
  5.                
  6.                
  7.     if (ep->type == EP_TYPE_ISOC)
  8.     {
  9.       USB_OTG_WritePacket(pdev, ep->xfer_buff, ep->num, ep->xfer_len);   //将ep->xfer_buff及其后cnt数据 给到发送DFIFO入栈
  10.     }   
复制代码


收藏 评论0 发布时间:2022-11-2 21:43

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版