我用的CH375B模块是并口的,单片机是STC11F60XE,用12MHZ晶振可以正常工作,但是用32MHZ晶振不能正常工作。换晶振之后也修改了两个延迟函数,为什么不能用?
CH375必须用12M晶振,单片机可以使用32MHZ,延时函数必须修改准确。你监控一下到哪一步了?
谢谢回复,每天课都比较多,可能不能及时回复
很不好意思,之前上课呢 现在试了一下, 芯片初始化没有问题, 检测到USB设备, 但是询问设备是否准备好时一直过不去。 接下来的读写也随之失败。 我可以保证延时函数是准确的。
这是函数main的部分内容
while(CH375LibInit() != ERR_SUCCESS);
while(CH375DiskStatus < DISK_CONNECT) { if (CH375DiskConnect() == ERR_SUCCESS) break; } for(i = 0; i != 10; i++) { DelayMS(20); if (CH375DiskReady() == ERR_SUCCESS) break; }
void xDelay100uS() { DELAY100US }
#define NO_DEFAULT_DELAY_WRITE
void xDelayAfterWrite() { DELAY200US }
修改了延时函数,保证是错不了的
先前的#define漏了 用的函数库版本0X37 头文件CH375HF6.H 能帮忙试一下出了什么问题吗
12MHZ能正常使用 24MHZ不能 32MHZ也不能
问题还是没有解决 话说,那个搜索文件的函数,为什么不能搜到1.*这种文件? 搜索根目录下的文件,索引号从0开始都是被搜到的文件 但是从某一子目录搜索,索引号要从2开始,0和1都是¥1¥1¥. ¥1¥1¥..这样的东西。 那个符号好像是0XA5,是吧
???怎么没人回我,芯片在12MHZ晶振(或以下)正常良好,所有函数都是可以用的。但是更高的晶振却不正常。CH375b的晶振是12MHZ没换过
我的CH375B就一个并口模块,其余啥都没有,自己接的外部电路。自己认为电路应该没有什么问题的,单片机是STC11F60XE,RAM是6264,锁存器74HC573,译码器74HC138,其余地址什么的都弄好了,要不然我怎么能读写U盘。 能帮忙看看吗? 是不是那个函数库不支持啊?还是头文件? 题外话,那个换行符为什么占一个字?
周末有些时间,求解决,单片机上不了32MHZ的晶振我老感觉损失了应有的速度
你好!我们周末休息所以没有及时回复,你现在主要问题是32M晶振时不正常工作,首先你得确认一下你的单片机支持这么快的晶振,其次晶振主要影响的还是时间。至于其他问题你先把这个问题解决了,然后再考虑其他问题。同时你也可以来电或者发邮件咨询!
单片机肯定支持这么快的,因为以前都是这么用的,那两个时间我都调了好多次了,不知道是不是库不支持
库里面会调用xDelay100uS、xDelayAfterWrite延时函数,你需要定义NO_DEFAULT_DELAY_100US、EN_DISK_WRITE、NO_DEFAULT_DELAY_WRITE,并且根据你的单片机调整延时。其他方面库都是通用的。
我也在这里问一下晶振问题 ch374U要求24M晶振 用24.576M晶振 替换可以吗
CH374一定要保证24M晶振频率,否则会造成不稳定。