程序如下: void CH375_Init( ) { unsigned char i; /* 测试CH375是否正常工作,可选操作,通常不需要 */ CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); /* 测试CH375是否正常工作 */ CH375_WR_DAT_PORT( 0x55 ); /* 写入测试数据 */ i = ~ 0x55; /* 返回数据应该是测试数据取反 */ while( CH375_RD_DAT_PORT( ) != i ) { /* CH375不正常 */ CH375_WR_CMD_PORT( CMD_RESET_ALL ); /* 多次重复发命令,执行硬件复位 */ // CH375_RD_DAT_PORT( ); //} // CH375_WR_CMD_PORT( 0 ); Delay50ms( ); /* 延时50ms */ } /* 设置USB工作模式, 必要操作 */ CH375_WR_CMD_PORT( CMD_SET_USB_MODE ); CH375_WR_DAT_PORT( 2 ); /* 设置为使用内置固件的USB设备方式 */ for ( i=100; i!=0; i-- ) { /* 等待操作成功,通常需要等待10uS-20uS */ if ( CH375_RD_DAT_PORT( ) == CMD_RET_SUCCESS ) break; } /* if ( i==0 ) { CH372/CH375存在硬件错误 }; */ /* 下述启用中断,假定CH375连接在INT0 */ } 我把例子中改成while死循环,发现程序就死在里面了。还有while里面的CH375_RD_DAT_PORT( );CH375_WR_CMD_PORT( 0 );不知道是干什么?例子里面有 不能初始化问题一般出在那?不是芯片坏了,我用的是CH375,买的模块
查看: 2947
回复: 5
初始化CH375失败啊
热门产品 :
CH390:以太网控制器芯片
初始化的时候应该不需要与PC相连接哦?我我用的是从机方式
假如CH375芯片都烧了 晶振还能启振么?
你那有串口输出没?你看下你写了0x55的数据返回的是什么数据?应该返回0xaa才是正确的.
你程序这样写的话,只要第一次CHECHEXIST不成功当然就死在里面了啊,你用原程序在上面跑,回出现什么异常啊?
不是异常,是没有现象,我都快郁闷死了!
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录