/* name: IO口模拟SPI.c writer: xiaowu date: 2010/11/3 **************************************** ** Copyright (C) 深圳蓝色飞舞科技 2008-2010 ** ** Web: http://www.lanwind.com ** **************************************** ** USB Host File Module @PB375A ** ** AVR ATMega8L ** ** 深圳蓝色飞舞科技有限公司 ** ** 联系方式:0755-29739852 ** 技术email:xiaowuyeah@163.com ** discription: | | | | |ATMEGA8L | | PB375A | | PC0|---> |CS | | PC1|---> |SCK | | PC2|---> |SDI | | PC3|<--- |SDO | |________ | |____________| ATMEGA8L 的PC0,PC1,PC2,PC3分别和PB375A的CS SCK SDI SDO连接 该例程使用了ATMEGA8L的IO来模拟SPI 软件流程: 初始化IO口 检测U盘是否存在 新建文件 写入数据 关闭文件 ========================================================================================================== 移植说明: 对于不同的单片机的IO,你需要改动的函数有: 初始化端口 initPort() 需要修改里面初始化CS脚的输出 #define PB375_CS_SET PORTC |= (1< #define PB375_VER 0x28 /* 当前模块版本 */ /* ********************************************************************************************************************* */ /* 返回的操作状态码 */ #define ERR_DISK_DISCON 0x82 /* 检测到USB设备连接事件,磁盘已经断开,或者磁盘尚未连接 */ /* 最终状态码 */ #define ERR_SUCCESS 0x00 /* 操作成功 */ /* 外部命令码 */ #define CMD_FileOpen 0x64 /* 打开文件 */ #define CMD_FileCreate 0x65 /* 新建文件并打开,如果文件已经存在则先删除后再新建 */ #define CMD_FileErase 0x66 /* 删除文件并关闭 */ #define CMD_FileClose 0x67 /* 关闭当前文件 */ #define CMD_DiskReady 0x71 /* 查询磁盘是否准备好 */ #define CMD_ByteLocate 0x7A /* 以字节为单位移动当前文件指针 */ #define CMD_ByteRead 0x7B /* 以字节为单位从当前文件读取数据块 */ #define CMD_ByteWrite 0x7C /* 以字节为单位向当前文件写入数据块 */ #define PB375_CS_SET PORTC |= (1<