HC32F460 U盘文件读写例程

[复制链接]
 楼主| 小铭杨工 发表于 2025-5-5 13:47 | 显示全部楼层 |阅读模式
1.使用的MCU为:HC32F460PETB。
2.U盘TXT文件读写。
3.不使用实时操作系统,即“裸奔”
hbzjt2011 发表于 2025-6-19 15:16 | 显示全部楼层

HC32F460 U盘文件读写例程

#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,或做其它处理            }        }    }}参考以上框架
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部