一、准备工具
STM32CubeMX软件;
TrueSTUDIO软件;
STM32F429BI开发板带USB接口一块。
二、USB电路图
从电路图可以看出,只有两个接口与单片机连接,虽然使用的是单片机的高速引脚,但缺少高速芯片(自行科普),只能拿高速(HS)引脚当全速(FS)引脚用。
三、使用STM32CubeMX配置USB及FATFS
1.时钟配置
我这里使用的是高速外部时钟
时钟源是8MHz的晶振
2.USB配置
选择USB_OTG_HS,配置内部PHY为主机
选择USB_HOST,配置IP为MSC(大容量存储设备)模式
3.FATFS配置
选择FATFS,配置Mode为USB Disk
支持简体中文,使能长文件名,缓存放在栈中
4.生成TrueSTUDIO工程
四、添加测试程序
需要引用的变量
extern ApplicationTypeDef Appli_state;
extern USBH_HandleTypeDef hUsbHostFS;
extern char USBHPath[4]; /* USBH logical drive path */
FATFS USBDISKFatFs; /* File system object for USB disk logical drive */
FIL MyFile; /* File object */
主函数中需要添加的程序
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
MX_USB_HOST_Process();
/* USER CODE BEGIN 3 */
switch(Appli_state)
{
case APPLICATION_READY:
MSC_Application();
Appli_state = APPLICATION_DISCONNECT;
break;
case APPLICATION_DISCONNECT:
f_mount(NULL, "", 0);
break;
default:
break;
}
}
MSC_Application函数的实现
/* USER CODE BEGIN 4 */
static void MSC_Application(void)
{
FRESULT res; /* FatFs function common result code */
uint32_t byteswrite;
uint8_t wtext[] = "hello world!";
/* Register the file system object to the FatFs module */
if(f_mount(&USBDISKFatFs, (TCHAR const*)USBHPath, 0) != FR_OK)
{
/* FatFs Initialization Error */
Error_Handler();
}
else
{
/* Create and Open a new text file object with write access */
if(f_open(&MyFile, "hello.txt", FA_CREATE_ALWAYS | FA_WRITE) != FR_OK)
{
/* 'STM32.TXT' file Open for write Error */
Error_Handler();
}
else
{
res = f_write(&MyFile, wtext, sizeof(wtext), (void *)&byteswrite);
if(byteswrite == 0 || (res != FR_OK))
{
Error_Handler();
}
else
{
/* Close the open text file */
f_close(&MyFile);
}
}
}
}
五、测试结果
插上优盘,经过一段时间,打开优盘查看内容如下所示
上一篇:STM32CubeMX+TrueSTUDIO开发STM32的全新方式
下一篇:HAL+Cube MX 学习之UART串口通信
推荐阅读最新更新时间:2024-11-03 04:46
设计资源 培训 开发板 精华推荐
- SY7203无极调光模块
- LTC2946CDE 电源、电荷和能量监视器在 -48V 恶劣环境中的典型应用,使用 INTVCC 并联稳压器来耐受 200V 瞬态
- AM1S-2415SZ 1W DC-DC转换器典型应用
- LTC2931CF、12V、5V、3.3V、2.5V、1.8V、1.2V六电源监视器的典型应用电路
- DC1562B-L,LTC6994-2 演示板,100ms,上升/下降沿,从触发上升/下降沿延迟
- LT1764EFE SCR 预稳压器的典型应用可提供跨线路变化的效率
- FSA9280A 具有自动选择和附件检测功能的 USB 端口多媒体开关的典型应用
- 具有输入电源断电的 LTC3119HFE 12V、750kHz 稳压器的典型应用电路
- 使用 Analog Devices 的 LTC1504 的参考设计
- STC8H8K64U单片机最小系统(100%直插元件)