使用 SRAM 进行简单测试
Cubemx 设置 USB_OTG_FS 为 Device_Only, USB_DEVICE 设置 Class For FS IP 为 Mass Storage Class, 里面详细配置使用默认参数即可.
到 Project Manager 设置栈大小稍微大些, 因为 USB 协议的函数调用和局部变量较多, 比如设置成 0x10000.
在 usbd_storage_if.c 中添加如下代码, 使用 SRAM 作为存储:
#define STORAGE_LUN_NBR 1
#define STORAGE_BLK_NBR 200 /* 内存容量一般来说很少, 这里使用 100K 的内存作为实验 */
#define STORAGE_BLK_SIZ 0x200
/* USER CODE BEGIN PRIVATE_DEFINES */
static char msc_data[STORAGE_BLK_NBR * STORAGE_BLK_SIZ]; /* 定义数组用来存放数据 */
/* USER CODE END PRIVATE_DEFINES */
/* 修改下面两个函数 */
int8_t STORAGE_Read_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len)
{
/* USER CODE BEGIN 6 */
memcpy(buf, msc_data + STORAGE_BLK_SIZ*blk_addr, blk_len*STORAGE_BLK_SIZ);
return (USBD_OK);
/* USER CODE END 6 */
}
int8_t STORAGE_Write_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len)
{
/* USER CODE BEGIN 7 */
memcpy(msc_data + STORAGE_BLK_SIZ*blk_addr, buf, blk_len*STORAGE_BLK_SIZ);
return (USBD_OK);
/* USER CODE END 7 */
}
使用 NAND FLASH 做测试
int8_t STORAGE_Read_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len)
{
/* USER CODE BEGIN 6 */
for (int i = 0; i < blk_len; i++)
{
nand_flash_read_page((blk_addr + i) * 64, 0, buf, 4096);
}
return (USBD_OK);
/* USER CODE END 6 */
}
int8_t STORAGE_Write_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len)
{
/* USER CODE BEGIN 7 */
for (int i = 0; i < blk_len; i++)
{
nand_flash_erase(blk_addr + i);
nand_flash_write_page((blk_addr + i) * 64, 0, buf, 4096);
}
return (USBD_OK);
/* USER CODE END 7 */
}
上一篇:stm32配合xshell串口输入
下一篇:安富莱 STM32 按键检测
推荐阅读最新更新时间:2026-03-22 11:27
- RDR-142 - 35W电源
- i.MX RT1060 Evaluation Kit
- 使用 Embedded Planet 的 5CEFA9U27 的参考设计
- DC1369A-D、LTC2258-14 演示板、14 位 65 Msps ADC、LVDS 输出、5-170MHz
- LT3990EMSE-5 12V 降压转换器的典型应用
- 使用 Analog Devices 的 LTC1148 的参考设计
- LT1377IS8 具有直接反馈的正负转换器的典型应用
- 使用 NXP Semiconductors 的 TL431AI 的参考设计
- LT8304IS8E 18V 至 80Vin、5Vout 隔离反激式转换器的典型应用电路
- LT3512EMS 演示板,单片式高压隔离反激式转换器 36V VIN 75V,VOUT = 5V @ 500mA

STM32模拟串口
dm9000cep网卡通信
STM32 PMSM FOC 简介
现代雷达系统的信号设计
BFR340T






京公网安备 11010802033920号