CH376S读写测试失败

对CH376S进行复写测试,主要是为了验证读写函数是否正常使用,测试发现写入CHECK_EXIST命令以后再写入数据0xaa,然后进行读取,读到的数据还是0xaa.测试失败。命令的返回值应该是写入值的按位取反才对,也就是读到的数据应该是0x55。请问这可能是什么原因造成的??

    xWriteCH376Cmd(CHECK_EXIST);          //发送命令

    xWriteCH376Data(0xaa);          //写入数据0xaa

    temp = xReadCH376Data();          //读取写入数据取反结果,即0xaa取反应为0x55

    if(temp == 0x55) printf("测试工作状态:成功\n");//打印测试结果

    else printf("测试工作状态:失败%d\n",temp);



你用的是什么通讯接口?发送命令的时序对不对?一般命令执行时间是1.5us,等待1.5us再读数据看看。


并口进行通信,我的时钟频率是160M



void xWriteCH376Cmd(unsigned char command)

{


    //A0

    PIO_USB_A0=1;


    //DB DIR output

    PIO_USB_DB_DIR=0xff;


    PIO_USB_DB=command;

    delay();


    PIO_USB_CS=0;

    PIO_USB_WR=0;

    delay();

    PIO_USB_WR=1;

    PIO_USB_CS=1;


}




/* 

 * ===  FUNCTION  ========================================================

 *         Name:  delay

 *  Description:  

 * =======================================================================

 */

void delay(void)

{

    int i;

    for(i=0;i<100;i++);

}

/* 

 * ===  FUNCTION  ========================================================

 *         Name:  xWriteCH376Data

 *  Description:  

 * =======================================================================

 */


void xWriteCH376Data(unsigned char data)

{

   //A0

   PIO_USB_A0=0;


   //DB DIR output

   PIO_USB_DB_DIR=0xff;


   PIO_USB_DB=data;   

   delay();

   PIO_USB_CS=0;

   PIO_USB_WR=0;

   delay();

   PIO_USB_WR=1;

   PIO_USB_CS=1;


}




/* 

 * ===  FUNCTION  ========================================================

 *         Name:  xReadCH376Data

 *  Description:  

 * =======================================================================

 */


unsigned char xReadCH376Data(void)

{

    unsigned char data=0;

     //A0

    PIO_USB_A0=0;

    

    //DB DIR output

    PIO_USB_DB_DIR=0;

    PIO_USB_CS=0;

    PIO_USB_RD=0;

    delay();

    data=PIO_USB_DB;

    delay();

    PIO_USB_RD=1;

    PIO_USB_CS=1;


    return data;

}



读写函数如下


你的读写函数开头最好初始化一下,例如加上CS=1,RD=1,WR=1;另外你把时钟速度放慢一点事实,我之前说过一条命令响应时间至少1.5us,这个你要保证。


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