c8051f021不知为什么读ch375b好像出错了而写入数据后上传pc正常

下面为测试程序: CH375_WR_CMD_PORT(CMD_GET_IC_VER); i=CH375_RD_DAT_PORT(); 读出值为:0x01正常值为:B7(正常89s52读的)

CH375_WR_CMD_PORT(CMD_CHECK_EXIST); CH375_WR_DAT_PORT(0X57); i=CH375_RD_DAT_PORT(); 读出值为:0x00,正常值:0xa8

unsigned char CH375_RD_DAT_PORT( void ) { unsigned char i; unsigned char n=0; n++; n++; usb_cs=0; usb_a0=0; usb_rd=0; n++; i=P2; n++; n++; usb_rd=1; usb_cs=1; n++; n++; return( i );

} ch375采样内置固件模式,pc接收数据正常,pc无法下传,经测试好像ch375读不正常,不知什么原因,c8051f021采用12Mhz晶振单周期指令,连接usb的所有单片机管脚置为开漏(usb管脚为弱上拉),希望大家帮下忙,谢谢!

在读CH375的端口的时候,将C8051单片机的数据口方向设置成上拉输入试试。


谢谢你的提醒,我又重新阅读一下c8051f021的资料发现端口须置1才能为数字输入口,在读端口前先置P2=0xff就可以了,数据端口还是配置开漏,其他控制端口配置成推挽usb无法认出,不知是否与usb弱上拉冲突吗?不过问题先解决了,谢谢! unsigned char CH375_RD_DAT_PORT( void ) { unsigned char i; unsigned char n=0; n++; n++; usb_cs=0; usb_a0=0; P2=0xff; usb_rd=0; n++; i=P2; n++; n++; usb_rd=1; usb_cs=1; n++; n++; return( i );

}


楼主,我用c8051f020,将例程中的头文件reg52.h更改为c8051f020.h,编译时定义的寄存器全部报错,你的头文件如何使用的,帮帮我这新手,呵呵。邮箱:个人信息保护,已隐藏


你好:

    你报错问题出在c8051f020.hreg52.h里面的寄存器名称不完全一直,建议将程序中用到了reg52.h里面寄存器的函数内容替换为c8051f020中的写法。例如例程中会有串口调试函数,里面的TI,SCON等都要去掉,更改为c8051f020中串口写法。


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