|
本帖最后由 zdh413 于 2012-9-18 20:20 编辑
我用mega16做ch376模块的初始化调通了,写命令下面写的就能通过,居然延时100mS!!!但是确实是通过了,说明书不是大于1.5uS就行了吗,感觉差别也太大了!
void xWriteCH376Cmd( unsigned char mData ) /* 向CH376写命令 */
{
CH376_DATA_DDR=0xFF; //端口为输出
CH376_DATA_PORT=mData;
CH376_A0_H;;
mDelaymS(100);//延时
CH376_WR_L; //写控制信号
mDelaymS(100);//延时应大于1.5us
CH376_WR_H;
}
unsigned char mInitCH376Host( void ) //初始化CH376
{
unsigned char res=0;
CH376_PORT_INIT(); // 接口硬件初始化
xWriteCH376Cmd(CMD11_CHECK_EXIST); // 测试单片机与CH376之间的通讯接口
xWriteCH376Data(0x55); //应该返回0xAA
res = xReadCH376Data();
//------------------------------
PORTA=res;
//省略~
}
//怀疑延时程序不准,示波器测试下延时时间没问题,做了PORTD.0口延时1ms循环,示波器显示周期是3mS,所以事实是确实376需要延时几十毫秒
while(1)
{
PORTD |=0x01;
mDelaymS(1);//
PORTD &=0xFE;
mDelaymS(1);//
}
而且我试了试376写命令xWriteCH376Cmd( unsigned char mData ) 需要延时30mS左右才行,低于25就返回不了正确数据。My God.。376初始化真的需要这么长时间吗??? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|