没有定义错,可能上面漏写了 在程序里定义时是: #define DISK_BASE_BUF_LEN 512 extern unsigned char xdata DISK_BASE_BUF[DISK_BASE_BUF_LEN]
库是编译好的文件.如果修改肯定是不可以的,寻址方式都改变了.
1、不对吧,我们已经对数据类型进行了结构定义,如:unsigned char xdata是用UINT8X来表示的,你程序中怎么没改呢? 2、先前的问题应该就是磁盘缓冲区定义出了问题,把程序打包传上来看看(右下角修改帖子)
我没有使用CH375HF5.H,只是从其中取了部分内容,复制到自己定义的头文件中。所以“UINT8X”等结构定义没有使用 这样有问题吗?
建议你加入我们的头文件. 这样的话一方面以后如果库升级,您直接替换就可以了,不需要在修改什么东西 另一方面方便我们提供技术支持.确定库和头文件是没有问题的.
我们的库和头文件是一一对应的,否则我们也没必要给每个库都作一个头文件
我使用了贵公司的库和头文件 应用程序执行还是有问题 望指点 UploadImages/200912151583659.rar
建议您下次在描述问题的时候能把现象描述清楚点. (1)您现在运行到哪一步? (2)出错后,返回的错误代码是多少? (3)另外顺便看了下你的代码,在main()函数中一开始必须延时50ms以上,以便CH375能够有充足的时间复位完全. (4)请参考网站上提供的51下的例子程序.
1、具体是什么问题呢?老问题还是新问题 2、程序结构与我们的例程相比,改动比较大,但基本也没什么问题,一般情况下,建议使用我们的例程,在未调试成功前,不要轻易修改程序结构或增加其他功能程序
不好意思
1.编译的时候就提示: WARNING C206 IN LINE 823 OF CH375HF5.H:'xReadCH375Cmd':missing function-prototype 我看了一下例子程序中也没有定义xReadCH375Cmd() 2.运行该程序后,现在的现象:好像程序跑飞了。开机后,串口不停的接收到数据: Init Sucess Please plug in Flash-Disk Init Sucess Please plug in Flash-Disk Init Sucess Please plug in Flash-Disk 。。。。。。 我估计在运行xQueryInterrupt()时出错了,但这个是在CH375HF5.H中定义的,我没改过
这个函数没定义,肯定跑飞了,把sbit CH375_INT_WIRE改为:#define CH375_INT_WIRE INTO,CH375的中断信号可以通过2种方式提供:INT#脚或读命令口数据,最高为中断标志
xReadCH375Cmd(),这个函数在并口的时候使用,如果你不定义CH375_INT_WIRE,则必须定义该函数以用来检测中断信号. 如果使用中断信号线进行调试,定义如楼上所说. 如果不使用中断信号线,xReadCH375Cmd()的参考时序: UINT8 xReadCH375Cmd( void ) /* 从CH375读状态,仅用于并口方式 */ { UINT8 mData; CH375_DATA_DIR_IN( ); /* 设置并口方向为输入 */ CH375_A0 = 1; CH375_CS = 0; CH375_RD = 0; /* 输出有效读控制信号, 读CH375芯片的状态端口 */ CH375_CS = 0; /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度要求,强烈建议此处执行一条空指令延时以确保并口有足够时间输入数据 */ mData = CH375_DATA_DAT_IN( ); /* 从CH375的并口输入数据 */ CH375_RD = 1; /* 输出无效的控制信号, 完成操作CH375芯片 */ CH375_CS = 1; CH375_A0 = 0; return( mData ); } 最高位为0,则有中断.
谢谢 可以正常执行CH375FileOpen(),并成功返回ERR_SUCCESS
下面要想执行读数据功能
mCmdParam.ReadX.mDataBuffer = 1; i = CH375FileReadX(); if(i==ERR_SUCCESS) { Send_Message("File Open Success\n"); for(i=0;i<100;i++) Send_OneByte(DISK_BASE_BUF[ i ]); }
发现DISK_BASE_BUF[ ]中的内容不是文件里的内容,好像是FDT中的内容
建议你好好看下文档再去操作也不急.这样只会耽误您的时间. CH375FileReadX要去指定缓冲区的.否则数据存放在什么地方呢?下载CH375EVT.ZIP.里面有CH375HF.PDF
mCmdParam.ReadX.mDataBuffer指向用于存放数据的缓冲区地址,赋值1是什么意思呢? DISK_BASE_BUF是用于保存文件系统参数的,不是文件数据,除非共用。 扇区的读写流程参考例程