U盘 实现,屠龙刀 / 开天斧,都有完整的范例; 延申阅读: 文件系统,SD卡
U盘实现,屠龙刀 / 开天斧,都有完整的范例;https://www.stcaimcu.com/data/attachment/forum/202308/05/102236kdoaxmanccjco9os.png
延申阅读: 文件系统,SD卡
见第22个演示程序
/*************功能说明 **************
本例程基于STC32G核心转接板(屠龙刀)进行编写测试。
使用Keil C251编译器,Memory Model推荐设置XSmall模式,默认定义变量在edata,单时钟存取访问速度快。
edata建议保留1K给堆栈使用,空间不够时可将大数组、不常用变量加xdata关键字定义到xdata空间。
MSC(Mass Storage Class)协议范例
在"config.h"头文件里可将存储器设置为内部的EEPROM,或者外部的串行FLASH
屠龙刀没有外部串行FLASH,默认使用内部EEPROM
然后在ISP下载时,设置EEPROM大小为64K,即可实现一个64K容量的U盘
将代码下载到试验箱后,在PC端可识别为一个64K的U盘,格式化后就能存储文件
下载时, 设置IRC工作频率为 24MHz.
******************************************/
#include "stc.h"
#include "usb.h"
#include "scsi.h"
#include "memory.h"
void sys_init();
void main()
{
sys_init();
memory_init();
usb_init();
EA = 1;
while (1)
{
}
}
void sys_init()
{
WTST = 0;//设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
P0M1 = 0x00; P0M0 = 0x00;
P1M1 = 0x00; P1M0 = 0x00;
P2M1 = 0x00; P2M0 = 0x00;
P3M1 = 0x00; P3M0 = 0x00;
P4M1 = 0x00; P4M0 = 0x00;
P5M1 = 0x00; P5M0 = 0x00;
P6M1 = 0x00; P6M0 = 0x00;
P7M1 = 0x00; P7M0 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
IRC48MCR = 0x80;
while (!(IRC48MCR & 0x01));
USBCLK = 0x00;
USBCON = 0x90;
}
资料也可从下面下载
深圳国芯人工智能有限公司-核心功能实验板 (stcai.com)
延申阅读:文件系统,SD卡
znFAT 专门针对STC MCU编写的FAT32文件系统 - FreeRTOS/实时操作系统/文件系统/嵌入式系统软件 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
都是高价值应用啊
WINUSB测试OK很棒
下载看看! 请问STC32能否读取自身这个U盘中的文件吗? 可以 神农鼎 发表于 2024-1-13 15:20
可以
有没有一个例程参考一下,是用文件系统方式,还是像读取25Q32那种方式一个扇区扇区地读? 文件系统 | znFAT | STC32位8051运行代码@STC32G12K128
文件系统 | znFAT | STC32位8051运行 - FreeRTOS/实时操作系统/文件系统/嵌入式系统软件,TFT-GUI/uGFX - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
请教一下,我用STC8H做的模拟优盘功能正常,复制文件什么的都没问题,想按照znfat书里说的解析磁盘,结果十六进制打开后发现MBR部分的DPT表有问题 ?!
确实不影响功能,但是这是怎么回事啊?是优盘太小了吗?
页:
[1]