13、U盘、IC卡、SD卡读写、时钟芯片应用

13、U盘、IC卡、SD卡读写、时钟芯片应用

ID:41005406

大小:105.00 KB

页数:19页

时间:2019-08-13

13、U盘、IC卡、SD卡读写、时钟芯片应用_第1页
13、U盘、IC卡、SD卡读写、时钟芯片应用_第2页
13、U盘、IC卡、SD卡读写、时钟芯片应用_第3页
13、U盘、IC卡、SD卡读写、时钟芯片应用_第4页
13、U盘、IC卡、SD卡读写、时钟芯片应用_第5页
资源描述:

《13、U盘、IC卡、SD卡读写、时钟芯片应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、【实例94】读写U盘1.变量定义和基本操作函数(1)变量的定义#include#defineucharunsignedcharucharvolatilexdataCH372_CMD_PORT_at_0x7DFF;//CH372命令端口的I/O地址ucharvolatilexdataCH372_DAT_PORT_at_0x7CFE;//CH372数据端口的I/O地址ucharUsb_Length;//USB数据缓冲区中数据的长度ucharUsb_Buffer[CH372_MAX_DATA_LEN];//USB数据缓冲区#define

2、CH372_MAX_DATA_LEN0x40//最大数据包的长度,内部缓冲区的长度//命令代码#defineCMD_RESET_ALL0x05//执行硬件复位#defineCMD_CHECK_EXIST0x06//测试工作状态#defineCMD_SET_USB_ID0x12//设置USB厂商VID和产品PID#defineCMD_SET_USB_ADDR0x13//设置USB地址#defineCMD_SET_USB_MODE0x15//设置USB工作模式#defineCMD_SET_ENDP20x18//设置USB端点0的接收器#defineCM

3、D_SET_ENDP30x19//设置USB端点0的发送器#defineCMD_SET_ENDP40x1A//设置USB端点1的接收器#defineCMD_SET_ENDP50x1B//设置USB端点1的发送器#defineCMD_SET_ENDP60x1C//设置USB端点2/主机端点的接收器#defineCMD_SET_ENDP70x1D//设置USB端点2/主机端点的发送器//命令CMD_SET_ENDP2~CMD_SET_ENDP7输入为:工作方式,位7为1则位6为同步触发位,否则同步触发位不变,位3~位0为事务响应方:0000~1000-

4、就绪ACK,1101-忽略,1110-正忙NAK,1111-错误STALL#defineCMD_GET_TOGGLE0x0A//获取OUT事务的同步状态,输入:数据1AH,输出:同步状态#defineCMD_GET_STATUS0x22//获取中断状态并取消中断请求#defineCMD_UNLOCK_USB0x23//释放当前USB缓冲区#defineCMD_RD_USB_DATA0x28//从当前USB中断的端点缓冲区读取数据块,并释放缓冲区#defineCMD_WR_USB_DATA30x29//向USB端点0的发送缓冲区写入数据块#defin

5、eCMD_WR_USB_DATA50x2A//向USB端点1的发送缓冲区写入数据块#defineCMD_WR_USB_DATA70x2B//向USB端点2的发送缓冲区写入数据块//操作状态#defineCMD_RET_SUCCESS0x51//命令操作成功#defineCMD_RET_ABORT0x5F//命令操作失败(2)基本操作函数①函数DelayMs:在CH372读写过程中需要用到毫秒延时,该函数可以满足要求,程序代码如下。voidDelayMs(ucharn){uchari;unsignedintj;for(i=0;i

6、j=0;j<1000;j++)j=j;}②函数Delayµs:在读写命令的过程中经常要用到微秒的延时,该函数可以用来调用,其程序代码如下。voidDelay(uchari){while(i)i--;}③函数WR_CH372_CMD_PORT该函数用以向CH372命令端口写命令数据,周期不小于4µS,如果太快则延时,其程序代码如下。voidWR_CH372_CMD_PORT(ucharcmd){Delay(2);CH372_CMD_PORT=cmd;Delay(2);//至少延时2µS}④WR_CH372_DAT_PORT该函数用以向CH372数据端

7、口写数据,周期不小于1.5µS,如果太快则延时,其程序代码如下。voidWR_CH372_DAT_PORT(uchard){CH372_DAT_PORT=d;Delay(2);}⑤RD_CH372_DAT_PORT该函数用以从CH372命令端口读数据,周期不小于1.5µS,如果太快则延时,其程序代码如下。ucharRD_CH372_DAT_PORT(){Delay(2);return(CH372_DAT_PORT);}2.系统初始化CH372初始化的程序代码如下。voidCH372_init(){uchari,j;WR_CH372_CMD_PORT

8、(CMD_CHECK_EXIST);//测试CH372是否工作正常WR_CH372_CMD_PORT(0x68);//写入

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。