数据线用的是STM32 D0-D7(上面还有SDRM,LCD等) A0和CS用的GPIO口 RD、WD等挂载在STM32的读写信号线上。
#define OUTADDR4 (*((volatile INT8U *) 0x60500000))
void xWriteCH376Cmd(unsigned char CMD) { OUTADDR4=CMD; USB1_A_1; USB1_CS_0; delay_us(25); USB1_CS_1; USB1_A_0;
delay_us(20);
}
void xWriteCH376Data(unsigned char dat) { OUTADDR4=dat; USB1_A_0; USB1_CS_0; delay_us(25); USB1_CS_1; delay_us(20); }
unsigned char xReadCH376Data() { unsigned char i=0;
USB1_A_0; USB1_CS_0; delay_us(50); i=OUTADDR4; delay_us(20); USB1_CS_1;
return i; }
unsigned char xReadCH376Status() { unsigned char i=0;
USB1_A_1; USB1_CS_0; delay_us(50); i=OUTADDR4; delay_us(20); USB1_CS_1; USB1_A_0;
return i; }
unsigned char CH375_Init(void) { unsigned char i=0xff;
xWriteCH376Cmd(0x06); xWriteCH376Data(0x55); i=xReadCH376Data(); return i; }
我想当我向OUTADDR4写数据的时候,数据线上出现数据,我片选打开CH376,数据就可以进去了,读的时候也是这样,因此我没有控制CH376的读写信号线。OUTADDR4这个地址随便一个地址,只要我系统中其它地方没有使用即可。
但是现在CH375_Init()函数的返回值是0xFF,就是读不出正确的值,不知道什么问题?我的上述理解有问题吗?