ch372 上传数据

用ch372直接向PC机上传数据

void mCh375Interrupt( ) interrupt 2 using 1 { unsigned char InterruptStatus; CH375_WR_CMD_PORT( CMD_GET_STATUS ); /* 获取中断状态并取消中断请求 */ InterruptStatus = CH375_RD_DAT_PORT( ); /* 获取中断状态 */ if(InterruptStatus==USB_INT_EP2_IN) { CH375_WR_CMD_PORT( CMD_UNLOCK_USB ); } }

main( ) { unsigned char len; len=63; Delay50ms( ); /* 延时等待CH375初始化完成,如果单片机由CH375提供复位信号则不必延时 */ CH375_Init( ); /* 初始化CH375 */ EA = 1; /* 允许中断 */ CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); /* 向USB端点2的发送缓冲区写入数据块 */ CH375_WR_DAT_PORT( len ); /* 首先写入后续数据长度,回传刚接收到的数据长度 */ for ( i = 0; i < len; i ++ ) CH375_WR_DAT_PORT( i ); }

这么写不对么? 应该怎么写

main( ) { unsigned char len; len=63; Delay50ms( ); /* 延时等待CH375初始化完成,如果单片机由CH375提供复位信号则不必延时 */ CH375_Init( ); /* 初始化CH375 */

while(1){ //下面的判断可能很花时间,在计算机主动通信的时候可以不需要这个步骤,建议加上 mDelaymS(50); CH375_WR_CMD_PORT(0x0a); CH375_WR_DAT_PORT(0x20);//这边判断计算机是否准备好,时间在500MS,所以应该在500MS以上 _nop_( ); c=CH375_DAT_PORT; if((c&0x20)==0x20)break; }

EA = 1; /* 允许中断 */ CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); /* 向USB端点2的发送缓冲区写入数据块 */ CH375_WR_DAT_PORT( len ); /* 首先写入后续数据长度,回传刚接收到的数据长度 */ for ( i = 0; i < len; i ++ ) CH375_WR_DAT_PORT( i ); while(1); }


计算机主动通信必须有下传的步骤呗?


不明白什么意思?是否需要下传取决于用户自己的需求阿


while(1){ //下面的判断可能很花时间,在计算机主动通信的时候可以不需要这个步骤,建议加上 mDelaymS(50); CH375_WR_CMD_PORT(0x0a); CH375_WR_DAT_PORT(0x20);//这边判断计算机是否准备好,时间在500MS,所以应该在500MS以上 _nop_( ); c=CH375_DAT_PORT; if((c&0x20)==0x20)break; }

这部分的作用是等待CH372和PC建立连接完成。只有CH372和PC连接完成后,你发数据才有效。否则CH372无法发送的。


这样传输速度太慢了 能否有别的方法保证速度 我只要数据上传 谢谢


这样传输速度太慢了 能否有别的方法保证速度 我只要数据上传 谢谢


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