0X81为硬件错误,请先做测试命令.是否通过,如果不通过检查硬件.
单独一条命令,测试都能通过。几个命令先后执行后,输出状态就不对,不知什么原因?我怀疑是串口同步问题,可是应该怎样判断呢?
你直接做测试命令就可以了,简单的就是首先发送0X55,读取到的数据是0XAA的话在发送0XAA,看下读取到的数据是不是 0X55
单独一条命令,测试都能通过。先发送0X55,读取到的数据是0X55,再发送0XAA,读取到的数据是0XAA.
上面说的发送测试命令的数据,发送0X55,返回0X55还是0XAA??
只发送一条测试命令,如果发送0X55,返回是0XAA。但是如果先发送0X55,再发送0XAA,读取到的数据是先是0X55后是0XAA.
正确的测试方法: 1:发送一条测试命令,送0X55,返回是0XAA 2:发送一条测试命令,送0XAA,返回是0X55 不知道是不是这样测试的.如果是上述返回的数据,说明测试通过. 可以把完整程序贴出来看看
void xWriteCH375Cmd( unsigned char mCmd ) { usdelay(20); UTCTL1|=TXWAKE; // 发送地址位,375第9位为1时写命令 TXBUF1=mCmd; while((UTCTL1&0X01)==0); usdelay(20); }
/* 发送一个字节数据给CH375模块 */ void mSendByte( unsigned char c ) { //usdelay(20); UTCTL1&=~TXWAKE; //第9位为0时写数据 TXBUF1 = c; while((UTCTL1&0X01)==0); usdelay(20); }
/* 从CH375模块接收一个字节数据 */ unsigned char mRecvByte( ) { return( RXBUF1 ); } xWriteCH375Cmd(0x06); mSendByte(0x78); data[0] = mRecvByte(); xWriteCH375Cmd(0x06); mSendByte(0xaa); data[1] = mRecvByte(); 测试出来的值 data[0]和data[1]刚好交换