hpdell
发表于 2016-12-9 14:09:59
本帖最后由 hpdell 于 2016-12-9 14:26 编辑
adlu 发表于 2016-12-9 11:47
你也是用CubeMX配置生成的MDK工程吗?
上传工程我看看,或者发我邮箱。
是使用 CubeMX自动生成的, 在 usbd_storage_if.c 这个里面增加sd卡的底层驱动就可以了,
另外中断设置, sd卡使用dma,sd卡中断设置为6,sd卡的接收,发送dma都设置为6,usb中断设置为7, 也就是usb的中断比sd卡的要低,
其他的也没有什么了
我使用的是外接 USB3300 的高速模块的
adlu
发表于 2016-12-9 16:57:08
hpdell 发表于 2016-12-9 14:09
是使用 CubeMX自动生成的, 在 usbd_storage_if.c 这个里面增加sd卡的底层驱动就可以了,
好,谢谢!
有空我在试一下。
zbber
发表于 2016-12-9 18:17:00
我有USB读取SD卡
斜阳__
发表于 2016-12-10 09:27:06
看看,mark
samhong
发表于 2016-12-10 10:20:28
周末愉快!签到签到。
samhong
发表于 2016-12-10 10:45:20
周末愉快!
samhong
发表于 2016-12-10 10:46:11
sd卡模拟u盘读写这功能好实用的。
DavidWen
发表于 2017-6-9 16:12:54
楼主,我也遇到和您一样的问题,请问您是怎么修改usb的速度的。
hpdell
发表于 2017-6-10 20:03:13
DavidWen 发表于 2017-6-9 16:12
楼主,我也遇到和您一样的问题,请问您是怎么修改usb的速度的。
USBD_StatusTypeDefUSBD_LL_Init (USBD_HandleTypeDef *pdev)
{
/* Init USB_IP */
if (pdev->id == DEVICE_HS) {
/* Link The driver to the stack */
hpcd_USB_OTG_HS.pData = pdev;
pdev->pData = &hpcd_USB_OTG_HS;
hpcd_USB_OTG_HS.Instance = USB_OTG_HS;
#if 0
hhcd_USB_OTG_HS.Init.dev_endpoints = 9;
hhcd_USB_OTG_HS.Init.Host_channels = 12;
#else
hpcd_USB_OTG_HS.Init.Host_channels = 11;// 设置为9、11都可以
#endif
hpcd_USB_OTG_HS.Init.speed = PCD_SPEED_FULL;// 模拟u盘,速度设置 PCD_SPEED_HIGH_IN_FULL 或者 PCD_SPEED_FULL ;
// 切记不可以设置为 PCD_SPEED_HIGH
hpcd_USB_OTG_HS.Init.dma_enable = DISABLE;
hpcd_USB_OTG_HS.Init.ep0_mps = DEP0CTL_MPS_64;
hpcd_USB_OTG_HS.Init.phy_itface = USB_OTG_ULPI_PHY;
hpcd_USB_OTG_HS.Init.Sof_enable = DISABLE;
hpcd_USB_OTG_HS.Init.low_power_enable = DISABLE;
hpcd_USB_OTG_HS.Init.lpm_enable = DISABLE;
hpcd_USB_OTG_HS.Init.vbus_sensing_enable = DISABLE;
hpcd_USB_OTG_HS.Init.use_dedicated_ep1 = DISABLE;
hpcd_USB_OTG_HS.Init.use_external_vbus = DISABLE;
if (HAL_PCD_Init(&hpcd_USB_OTG_HS) != HAL_OK)
{
Error_Handler();
}
HAL_PCDEx_SetRxFiFo(&hpcd_USB_OTG_HS, 0x200);
HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_HS, 0, 0x80);
HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_HS, 1, 0x174);
}
return USBD_OK;
}
epochal
发表于 2017-6-11 08:09:46
还是配置的问题!谢谢分享!