[求助]请教关于写缓冲区的问题

void CH375_WR_DATA() { unsigned char i; unsigned char data buffer[ 64 ]; CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); for ( i = 0; i < 64; i ++ ) buffer[ i ] = 0xff; for ( i = 0; i <64; i ++ ) CH375_WR_DAT_PORT( buffer[ i ] ); P1=0x0d; Delay50ms( ); P1=0xff; }

以上是我写的向CH372缓冲区写入全0xff的程序,该程序在main()函数中调用,位置在初始化程序之后,请问这个程序有什么问题吗??还有,还想请问下高手,ch372中传送的数据是什么格式的啊??

你是用的内置固件还是外部固件?如果是外部固件的话你必须等到主机枚举好设备后才可以发数据.Delay50ms( );的延时是没有必要的.至于372的数据格式没什么要求,数据是什么是你自己来决定的.CH372只是个管道对数据不检查,保证每次传输的数据长度不超过该端点的单次传输的最大数据长度就行了!另外这个程序有点问题 CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); 后要写入要传输的数据长度! CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); CH375_WR_DAT_PORT(64); for ( i = 0; i <64; i ++ ) CH375_WR_DAT_PORT( buffer[ i ] );


好的,受教了。感谢高手


我按照上面的程序写到单片机中后,点上传后,上位机接受不到数据,我的本意是将缓冲区写入64个 0xff,这样子有问题吗??


能不能写入数据后,执行什么操作,然后通知上位机来取数据啊。


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