想请教下:为什么总是初始化不好呢?

我的初始下:总是得到i!=0;我用的77E58,库是CH375HF5.lib,请教一下,我为什么i总不返回0。 void init_ch375() { uchar i; CH375_PORT_INIT( ); /* 由于使用通用I/O模块并口读写时序,所以进行初始化 */ mDelay100mS( ); /* 延时100毫秒 */ feed_dog();//050704 i = CH375LibInit( ); /* 初始化CH375程序库和CH375芯片,操作成功返回0 */ if(!i) { sound_ch375_ok();//语音提示375初始化好。 } else { sound_ch375_not_ok();//语音提示没有初始化好。 } }

你先拿CHECK_EXIST命令,测试一下命令数据端口,还有时序是否正确.


感谢你的回复。晚上我试试! 我可以用MSN或QQ联系你吗?

QQ:314786483 MSN:个人信息保护,已隐藏


下面是我的程序:我希望P0回来是0x0f;但实际回来是0xff,不太清楚是为什么。 sbit CH375_A0 = P2^0; sbit CH375_WR = P2^1; sbit CH375_RD = P2^2; sbit CH375_CS = P2^3;

sbit KEY_INT_PIN =P3^3; sbit SCL_1161 =P3^4; sbit SDA_1161 =P3^5;

void mDelay100mS( ) { uchar i, j, c; for ( i = 200; i != 0; i -- ) for ( j = 200; j != 0; j -- ) c+=3; }

void mDelay1_2uS( ) /* 至少延时1.2uS,根据单片机主频调整 */ { return; }

void CH375_PORT_INIT( ) /* 由于使用通用I/O模块并口读写时序,所以进行初始化 */ { CH375_CS = 1; CH375_WR = 1; CH375_RD = 1; CH375_A0 = 0; P0 = 0xFF; /* 并口输入 */ }

void WriteCH375Cmd( uchar mCmd ) /* 外部定义的被CH375程序库调用的子程序,向CH375写命令 */ { mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延时1uS */ P0 = mCmd; /* 向CH375的并口输出数据 */ CH375_A0 = 1; CH375_CS = 0; CH375_WR = 0; /* 输出有效写控制信号, 写CH375芯片的命令端口 */ CH375_CS = 0; /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */ CH375_WR = 1; /* 输出无效的控制信号, 完成操作CH375芯片 */ CH375_CS = 1; CH375_A0 = 0; P0 = 0xFF; /* 禁止数据输出 */ mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延时2uS */ }

void WriteCH375Data( uchar mData ) /* 外部定义的被CH375程序库调用的子程序,向CH375写数据 */ { P0 = mData; /* 向CH375的并口输出数据 */ CH375_A0 = 0; CH375_CS = 0; CH375_WR = 0; /* 输出有效写控制信号, 写CH375芯片的数据端口 */ CH375_CS = 0; /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */ CH375_WR = 1; /* 输出无效的控制信号, 完成操作CH375芯片 */ CH375_CS = 1; P0 = 0xFF; /* 禁止数据输出 */ mDelay1_2uS( ); /* 至少延时1.2uS */ }

uchar ReadCH375Data( void ) /* 外部定义的被CH375程序库调用的子程序,从CH375读数据 */ { uchar mData; mDelay1_2uS( ); /* 至少延时1.2uS */ P0 = 0xFF; /* 输入 */ CH375_A0 = 0; CH375_CS = 0; CH375_RD = 0; /* 输出有效写控制信号, 读CH375芯片的数据端口 */ CH375_CS = 0; /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */ mData = P0; /* 从CH375的并口输入数据 */ CH375_RD = 1; /* 输出无效的控制信号, 完成操作CH375芯片 */ CH375_CS = 1; return( mData ); }

void main() { mDelay100mS(); CH375_PORT_INIT(); WriteCH375Cmd(0x06); WriteCH375Data(0xf0); mDelay100mS(); P1=ReadCH375Data(); while(1) { feed_dog(); } }


好了,在另外一块板子上可以了。


只有登录才能回复,可以选择微信账号登录