使用 CH375S芯片, i = CH375LibInit( ) 返回 0x81:硬件错误。 示波器显示各管脚基本正常,除供电电压稍低。 在简单测试程序中,插拔U盘,有中断,但是中断后INT一直是低电平,没有清除。 中断例程如下: void __irq CH375Interrupt( void ) /* CH375中断服务程序,由CH375的INT#的低电平或者下降沿触发单片机中断 */ { rI_ISPC|=BIT_EINT3; //clear pending_bit // CH375Cmd = 0; // CH375Dat = 0; xWriteCH375Cmd( CMD_GET_STATUS ); /* 获取中断状态并取消中断请求 */ CH375IntStatus = xReadCH375Data( ); /* 获取中断状态 */ if ( CH375IntStatus == USB_INT_DISCONNECT ) CH375DiskStatus = DISK_DISCONNECT; /* 检测到USB设备断开事件 */ else if ( CH375IntStatus == USB_INT_CONNECT ) CH375DiskStatus = DISK_CONNECT; /* 检测到USB设备连接事件 */
}
void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定义的被CH375程序库调用的子程序,向CH375写命令 */ { mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延时1uS */ CH375Cmd = mCmd; mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延时2uS */ }
CH375Cmd 定义为0xe000001 CH375Dat 0xe000000
请版主看看有什么问题,谢谢!