我选用ch376串口工作方式,其ch376评估板与单片机主板的接口就4根线,VCC、RXD、TXD、GDD。编写的程序借鉴CH376EVT中的EXAM7-字节模式文件读写,但是我在单步调试到 mInitCH376Host( void ) /* 初始化CH376 */ 时却出现了问题,程序没有返回USB_INT_SUCCESS,进一步查找原因,发现在调用该初始化程序时,运行完如下3行测试程序时,res值没有变化,还是原来的0x00(但有一次单步调试到那里时,正常收到0xAA)。 xWriteCH376Cmd( CMD11_CHECK_EXIST ); /* 测试单片机与CH376之间的通讯接口 */ xWriteCH376Data( 0x55 ); res = xReadCH376Data( ); 波特率设置都检查过,没什么问题。(附加现象,U盘插上后ACT管脚边上的LED灯不亮) 现向高手请教,出现上述问题的最大可能原因是什么。非常感谢!!!
单片机的波特率是否准确?是用的11.0592或是7.3728晶振吗?
出现这个现象可能时和仿真器有关。你把res的变量类型修改一下,修改为一个全局变量试一下。 务必保证测试命令能够通过。
1、确认硬件连接方式: MCU CH376 TXD RXD RXD TXD GND GND 2、CH376默认波特率是9600,8位数据方式,1个起始/停止位,波特率没问题,是怎么检查的? 3、移植我们的例程,只要根据你的单片机,修改UART_HW中的3个串口收发函数以及CH376的中断线定义就可以,其余程序均不用修改 4、确认CH376已正常工作:晶振振荡
谢谢大家的热心帮忙!经过今早的努力,我已经查出原因了。 原因就是在调用IAR编译器自带的延时函数时,其延时不准确,也就是说延时时间不够。改用定时中断延时100ms后,问题就解决了。 现在我的问题是U盘中创建的文件不能发现~~ 不过我相信经过我下午的努力,这个问题也一定能够迎刃而解!!
你的u盘文件能创建了吗?我也遇到同样的问题,希望能得到你的帮助。我的qq522271715
创建文件之前的U盘初始化工作,是不是都正常通过? 创建的文件名要符合 8+3格式的英文大写字母
现在u盘初始化成功了,可是执行CH376FileCreate函数后,返回值是USB_INT_SUCCESS,但是在u盘中却看不到新建文件,请问是怎么回事?谢谢大侠。