我测的CH375 26脚只有3.7V,说明什么问题?

我测的CH375 26脚只有3.7V,说明什么问题?我看以前的BBS上说应该是高电平,是不是因为rst到不了+5所以CH375不能初始化?

芯片工作电压是多少?正常应该为5V才对。26脚电压为5V,25脚电压为0V才能说明芯片正常工作。


给VCC接的+5V,25脚0V没错,26脚只有3.7V。24脚也是3.7V。串口接法。不会是芯片坏了吧


V3引脚电压是多少?25脚和26脚是悬空的吧


是悬空,V3引脚是3.1V


那应该没什么问题,建议你去做测试命令看下是否可以通过


xWriteCH375Cmd(0x06)是嵌在.H文件的CH375LibInit函数里还是放在.C文件i = CH375LibInit( ); 之后? 具体是怎么实现的?


在延时50MS之后,自己发0X06命令,在发0X55,往回读取数据,正确为0XAA。不需要初始化芯片。


不用写在程序里直接用上位机发送0x06吗?


void USART_Transmit( unsigned char data ) { /* 等待发送缓冲器为空*/ while ( !( UCSR0A & (1<; /* 将数据放入缓冲器,发送数据*/ UDR0 = data; }

void Test_CH375(void)

{ UINT8 tmpx; xWriteCH375Cmd(0x06); xWriteCH375Data(0x55); tmpx=xReadCH375Data(); USART_Transmit(tmpx); }

void main( ) { UINT8 i, c, SecCount; UINT16 NewSize, count; /* 因为RAM容量有限,所以NewSize限制为16位,实际上如果文件较大,应该分几次读写并且将NewSize改为UINT32以便累计 */ UINT8 *pCodeStr; // CH375_PORT_INIT( ); LED_OUT_INIT( ); LED_OUT_ACT( );/* 开机后LED亮一下以示工作 */ mDelaymS( 2000 ); /* 延时2000毫秒 */ LED_OUT_INACT( ); USART1_Init(); mInitSTDIO( ); /* 为了让计算机通过串口监控演示过程 */ printf( "Start\n" ); Test_CH375(); ………………

可是什么也回不来


写命令的时候,串口的位9为1,写数据的时候,串口的位9为0。需要把串口配置成9位数据方式。


这是我修改的函数,是否有问题? void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定义的被CH375程序库调用的子程序,向CH375写命令 */ { /* 等待发送缓冲器为空*/ while ( !( UCSR1A & (1< /* 将第9 位置1*/ UCSR1B |= 0x01; /* 将数据放入缓冲器,发送数据*/ UDR1 = mCmd; }

void xWriteCH375Data( UINT8 mData ) /* 外部定义的被CH375程序库调用的子程序,向CH375写数据 */ { /* 等待发送缓冲器为空*/ while ( !( UCSR1A & (1< /* 将第9 位置0*/ UCSR1B |= 0x00; /* 将数据放入缓冲器,发送数据*/ UDR1 = mData; }

UINT8 xReadCH375Data( void ) /* 外部定义的被CH375程序库调用的子程序,从CH375读数据 */ { unsigned char status, resh, resl; /* 等待接收数据*/ while ( !(UCSR1A & (1< /* 从缓冲器中获得状态、第9 位及数据*/ status = UCSR1A; resh = UCSR1B; resl = UDR1; /* 如果出错,返回-1 */ if ( status & (1< return -1; /* 过滤第9 位数据,然后返回*/ resh = (resh >> 1) & 0x01; return ((resh << 8) | resl); }


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