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

STM32F429 DISCOVERY USB通信

[复制链接]
a594373280 提问时间:2015-7-12 23:40 /
最近在弄USB的程序,我使用STM32F429的高速USB模块,PHY使用STM32F429内部自带的全速PHY。在我的应用中,我需要自己定义4个端点(端点0除外),端点1(IN  Interrupt类型),端点2(OUT Interrupt类型),端点3( IN Bulk类型),端点4(OUT Bulk类型),现在端点1、端点2和端点4都可以进行通信,但是唯独端点3无法发送数据,而且我看端点3的状态是端点3在收到IN指令包的时候FIFO为空,下面是我对FIFO进行分配的代码:
   HAL_PCD_SetRxFiFo(&hpcd_USB_OTG_HS, 0x100);//out端点好像是共用一个接收FIFO
   HAL_PCD_SetTxFiFo(&hpcd_USB_OTG_HS, 0, 0x100);//IN端点0的发送FIFO
   HAL_PCD_SetTxFiFo(&hpcd_USB_OTG_HS, 1, 0x100);//IN端点1的发送FIFO
   HAL_PCD_SetTxFiFo(&hpcd_USB_OTG_HS, 2, 0x100);//IN端点2的发送FIFO


同时我也打开了USB端点
    USBD_LL_OpenEP(pdev,
                    MSC_EPOUT1_ADDR,
                    USBD_EP_TYPE_INTR,
                    MSC_INTERRUPT_POINT_MAX);
     
     /* Open EP IN1 */
     USBD_LL_OpenEP(pdev,
                    MSC_EPIN1_ADDR,
                    USBD_EP_TYPE_INTR,
                    MSC_INTERRUPT_POINT_MAX);  
        /* Open EP OUT2 */
     USBD_LL_OpenEP(pdev,
                    MSC_EPOUT2_ADDR,
                    USBD_EP_TYPE_BULK,
                    MSC_MAX_FS_PACKET);
     
     /* Open EP IN2 */
     USBD_LL_OpenEP(pdev,
                    MSC_EPIN2_ADDR,
                    USBD_EP_TYPE_BULK,
                    MSC_MAX_FS_PACKET);

        USBD_LL_PrepareReceive(pdev,MSC_EPOUT1_ADDR,EP1_DATA,16);
现在我就纳闷了,为什么我使用端点3发送数据,但是在接收到IN指令包的时候说我FIFO为空呢?是我的FIFO分配有误吗



收藏 评论1 发布时间:2015-7-12 23:40

举报

1个回答
mark0668 回答时间:2015-7-12 23:42:40
没用过高速USB..看看

所属标签

相似问题

官网相关资源

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