完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
下面是运用串口进行模块调试返回的数据。 Chek OK USB work type:51 Set mode OK INT = 0F bus rest! INT = 0F bus rest! INT = 0C Length = 08 Quest = 0x80 0x86 0x80 0x81 0x80 0x80 0xC0 0x80 SETUP = 86 调试 RESET_ALL 实现硬件复位 CHECK_EXIST 测试工作状态 OK 设置 USB 工作模式 51H CMD_RET_SUCCESS 操作成功 但是当插上 USB 数据线后获取上位机机的标准请求码,数据不正常? 0x80 0x86 0x80 0x81 0x80 0x80 0xC0 0x80 最高位为0x80 不知道,请教一下这是哪里出了问题。 下面是代码: #include #include #define uchar unsigned char #define uint unsigned int #define haltif(cmp,msg) if(cmp){print(msg);halt_} #define halt_ for(;;){} sbit INT = P3^2; sbit A0 = P2^1; sbit CS = P2^0; sbit Read = P3^7; sbit Write = P3^6; void Delay10ms()//@11.0592MHz { unsigned char i, j; i = 108; j = 145; do { while (--j); } while (--i); } void Wr_cmd( unsigned char cmd) { /* 向CH375的命令端口写入命令,周期不小于4uS,如果单片机较快则延时 */ P0 = 0xFF; _nop_(); _nop_(); CS = 0; A0 = 1; Write = 0; P0 = cmd; _nop_(); _nop_();_nop_(); Write = 1; A0 = 0; _nop_(); P0 = 0xFF; _nop_(); } void Wr_Data( unsigned char dat) { /* 向CH375的数据端口写入数据,周期不小于1.5uS,如果单片机较快则延时 */ P0 = 0xFF; _nop_();_nop_(); _nop_();_nop_(); CS = 0; Write = 0; P0 = dat; _nop_();_nop_(); _nop_();_nop_(); Write = 1; CS = 1; _nop_(); P0 = 0xFF; } void Rd_Data(uchar *dat) { /* 从CH375的数据端口读出数据,周期不小于1.5uS,如果单片机较快则延时 */ P0 = 0xFF; _nop_();_nop_(); _nop_();_nop_(); CS = 0; Read = 0; _nop_(); _nop_(); _nop_();_nop_(); *dat = P0; Read = 1; CS = 1; A0 = 1; _nop_();_nop_(); _nop_();_nop_(); P0=0xFF; } void SendOneByte(unsigned char c) { SBUF = c; //把数据送往寄存器 while(!TI); //等待发送完成TI=0时一直发送,直到TI=1,发送后硬件自动置1 TI = 0; //发送完成标志 } void print(unsigned char *p) { while(*p!=' |