[技术问答] M463的hsusbd收发速度慢是什么原因

[复制链接]
 楼主| 两只袜子 发表于 2024-4-15 20:00 | 显示全部楼层 |阅读模式
/* bulk out */
    if(IrqStL & HSUSBD_GINTSTS_EPBIF_Msk)
    {
        int volatile i;

        IrqSt = HSUSBD->EP[EPB].EPINTSTS & HSUSBD->EP[EPB].EPINTEN;
        gu32RxSize = HSUSBD->EP[EPB].EPDATCNT & 0xffff;
        for(i = 0; i < gu32RxSize; i++)
            gUsbRxBuf = HSUSBD->EP[EPB].EPDAT_BYTE;

        /* Set a flag to indicate bulk out ready */
        gi8BulkOutReady = 1;
        HSUSBD_CLR_EP_INT_FLAG(EPB, IrqSt);
    }

M463的hsusbd测试中,当bulkout发来数据,进入中断读取数据的时候,gu32RxSize=512字节的数据 在没有编译器优化的情况下,大约需要170us才能读完。

        for(i = 0; i < gu32RxSize; i++)
            gUsbRxBuf = HSUSBD->EP[EPB].EPDAT_BYTE;
CPU跑的是200M,不知道为什么读usb的数据速度这么慢,这样也算不上usb2.0高速了,好像只要不到30M的波特率了,和480M差太多了,是什么原因呢
734774645 发表于 2024-4-15 21:40 | 显示全部楼层
数据线也会是一个因素。
yiy 发表于 2024-4-17 23:02 | 显示全部楼层
换一根好用的数据线试试。
jasontu 发表于 2024-4-19 11:23 | 显示全部楼层
看下**有没有字节对齊,或用word的方式作存取
呐咯密密 发表于 2024-4-19 11:49 | 显示全部楼层
猜测是字节对齐问题
huquanz711 发表于 2024-4-19 20:07 来自手机 | 显示全部楼层
480M是给你标的理论速度吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2122

主题

8118

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部