#include "usb_host.h" // USB Host驱动接口#include "ff.h" // FatFs头文件#include FATFS fs; // 文件系统对象FIL file; // 文件对象FRESULT res;UINT bw, br; // 读写字节数void USBH_UserProcess(uint8_t id){ switch(id) { case HOST_USER_CONNECTION: // U盘连接成功 break; case HOST_USER_DISCONNECTION: // U盘拔出 break; case HOST_USER_CLASS_ACTIVE: // 设备准备好,可以挂载文件系统 if (f_mount(&fs, "", 1) == FR_OK) { // 文件系统挂载成功 } break; default: break; }}int main(void){ System_Init(); // 系统初始化 USBH_Init(); // USB Host初始化,注册回调USBH_UserProcess USBH_Start(); while(1) { USBH_Process(); // USB Host主状态机 if (U盘已挂载) { // 写文件示例 res = f_open(&file, "test.txt", FA_OPEN_ALWAYS | FA_WRITE); if(res == FR_OK) { f_lseek(&file, f_size(&file)); // 定位到文件末尾 char wbuf[] = "Hello HC32F460 USB!\r\n"; f_write(&file, wbuf, strlen(wbuf), &bw); f_close(&file); } // 读文件示例 res = f_open(&file, "test.txt", FA_READ); if(res == FR_OK) { char rbuf[128]; memset(rbuf, 0, sizeof(rbuf)); f_read(&file, rbuf, sizeof(rbuf)-1, &br); f_close(&file); // 这里可以打印rbuf,或做其它处理 } } }}参考以上框架
|