网站建设参考,装饰画图片大全,营销网站制作多少钱,地铁网站建设特点记录下SPI Flash U盘实现过程中踩过的坑#xff0c;与您分享。前提条件是#xff0c;需要先将SPI Flash 配置到elm fal文件系统#xff0c;并挂载成功。如下图然后开始配置USB1#xff0c;在CubeMX#xff0c;选择SUB_OTG_FS2 选择USB Device3#xff0c;确认USB时钟为48…记录下SPI Flash U盘实现过程中踩过的坑与您分享。前提条件是需要先将SPI Flash 配置到elm fal文件系统并挂载成功。如下图然后开始配置USB1在CubeMX选择SUB_OTG_FS2 选择USB Device3确认USB时钟为48MHz4生成代码然后打开生成的工程如下【1】将工程中void SystemClock_Config(void)的代码更新到RT-thread 平台board.c相同的函数内替换掉原有代码。【2】将生成的USB 引脚初始化程序复制到board.c 内。void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
{GPIO_InitTypeDef GPIO_InitStruct {0};if(pcdHandle-InstanceUSB_OTG_FS){/* USER CODE BEGIN USB_OTG_FS_MspInit 0 *//* USER CODE END USB_OTG_FS_MspInit 0 */__HAL_RCC_GPIOA_CLK_ENABLE();/**USB_OTG_FS GPIO ConfigurationPA11 ------ USB_OTG_FS_DMPA12 ------ USB_OTG_FS_DP*/GPIO_InitStruct.Pin GPIO_PIN_11|GPIO_PIN_12;GPIO_InitStruct.Mode GPIO_MODE_AF_PP;GPIO_InitStruct.Pull GPIO_NOPULL;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate GPIO_AF10_OTG_FS;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);/* Peripheral clock enable */__HAL_RCC_USB_OTG_FS_CLK_ENABLE();/* Peripheral interrupt init */HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);HAL_NVIC_EnableIRQ(OTG_FS_IRQn);/* USER CODE BEGIN USB_OTG_FS_MspInit 1 *//* USER CODE END USB_OTG_FS_MspInit 1 */}
}void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)
{if(pcdHandle-InstanceUSB_OTG_FS){/* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 *//* USER CODE END USB_OTG_FS_MspDeInit 0 *//* Peripheral clock disable */__HAL_RCC_USB_OTG_FS_CLK_DISABLE();/**USB_OTG_FS GPIO ConfigurationPA11 ------ USB_OTG_FS_DMPA12 ------ USB_OTG_FS_DP*/HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);/* Peripheral interrupt Deinit*/HAL_NVIC_DisableIRQ(OTG_FS_IRQn);/* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 *//* USER CODE END USB_OTG_FS_MspDeInit 1 */}
}5配置RT-Thread平台代码【1】在RT-thread studio中打开RT-Thread Settings然后在右上角的搜索栏内输入USB【2】选择使用USB设置如下注意磁盘名是指SPI Flash 文件系统分区时指定的名称将来USB组件需要通过该名称查找注册的设备进行关联系统挂载分区时需要用到此名字6打开board/Kconfig,加入如下代码后保存。 config BSP_USING_USBDbool Enable OTGFS as USB deviceselect RT_USING_USB_DEVICEdefault nconfig BSP_USBD_EP_ISOCbooldefault ndepends on BSP_USING_USBDconfig BSP_USING_STM32_SDIObool Enable SDIOselect RT_USING_SDIOselect PKG_USING_STM32_SDIOdefault nhelpBSP_USING_STM32_SDIO use drv_sdio_adapter.c,andBSP_USING_SDIO use drv_sdio.c config BSP_USING_ON_CHIP_FLASHbool Enable On Chip FLASH (LittleFS)select BSP_USING_FS select RT_USING_DFSselect RT_USING_DFS_ROMFSselect RT_USING_MTD_NOR select PKG_USING_FALselect FAL_USING_AUTO_INITselect FAL_PART_HAS_TABLE_CFGselect PKG_USING_LITTLEFSdefault n
7在RT-Thread Settings中开启USBD功能选项8保存RT-Thread Settings更新配置后重新编译硬件上确保USB线序正确D线配置成上拉或者加上拉电阻。然后重新在程序将此USB连线插入电脑几秒钟后显示如下然后打开U盘新建文件text.txt,然后操作如下保存后关闭文件拔出U盘在finsh命令端口操作如下说明新建文件已经成功保存到SPI flash内。