如果没有涉及到中断端点的上传和批量端点首先上传,那请问到哪里可以找到相应的示例程序? MCS51C\MCU 中的 CH372DBG.C 程序我也看过了,也没有找到中断端点的上传和批量端点首先上传的操作程序,只是比 test.C 程序多了 存储器和SFR读写 和 获取调试固件程序的版本 的中断处理程序. 请问 mSportinterupt(void ) 程序段,是对端点2或端点1进行的操作吗?如果是的话,那么其中的 SBUF,RI,TI, 分别是在哪里定义的?我没有找到相应的定义和声明?
请问"中断端点的上传和批量端点上传"的操作应该如何进行? 可否给一个示例程序我参考一下? 谢谢!
你可以到这里去下载例子程序: /bbs/View.asp?S=101&I=19463
参考程序我看了,有两个问题需要请教一下: (1)向PC机发起数据上传的TEST程序 200762912463276.rar 数据包中 TEST.C 源程序,其中的中断子程序 mCh375Interrupt( ) 在分析中断状态并取消中断请求时,命令语句为: InterruptStatus = CH375_RD_DAT_PORT( ); /* 获取中断状态 */ switch ( InterruptStatus ) { /* 分析中断状态处理 */ case USB_INT_EP2_OUT: { /* 批量端点下传成功 */ 。。。。。。。。。。。。。 CH375_WR_CMD_PORT( CMD_WR_USB_DATA5 ); /* 从当前USB中断的端点缓冲区读取数据块,并释放缓冲区 */ 。。。。。。。。。。。。。 } 而 PUB\TEST\MCU 文件夹中的 TEST.C 源程序对该段的命令语句为: InterruptStatus = CH375_RD_DAT_PORT( ); /* 获取中断状态 */ switch ( InterruptStatus ) { /* 分析中断状态处理 */ case USB_INT_EP2_OUT: { /* 批量端点下传成功 */ 。。。。。。。。。。。。。 CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); /* 从当前USB中断的端点缓冲区读取数据块,并释放缓冲区 */ 。。。。。。。。。。。。。 } 即将 CH375_WR_CMD_PORT( CMD_WR_USB_DATA5 )改为了 CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ),我个人认为,既然判断的状态是 USB_INT_EP2_OUT(USB端点2的OUT),就应该使用 CMD_WR_USB_DATA7(向USB端点2或者主机端点的发送缓冲区写入数据块),对端点2进行操作,而不是对端点1进行操作,使用 CMD_WR_USB_DATA5(向USB端点1的发送缓冲区写入数据块)命令吧? 不知道我的理解是否正确? (2)200762912463276.rar 数据包中 TEST.C 源程序的主程序 main()如下定义: main( ) { Delay50ms( );/* 延时等待CH375初始化完成,如果单片机由CH375提供复位信号则不必延时 */ CH375_Init( ); /* 初始化CH375 */ mInitSTDIO( ); 。。。。。。。。。。。。。 Delay50ms(); sent_data(); while(1){ if(CH375_WIRE==0){ mCh375Interrupt(); sent_data(); } } 而 PUB\TEST\MCU 文件夹中的 TEST.C 源程序对主程序的定义为: main( ) { Delay50ms( );/* 延时等待CH375初始化完成,如果单片机由CH375提供复位信号则不必延时 */ CH375_Init( ); /* 初始化CH375 */ EA = 1; /* 允许中断 */ while ( 1 ); /* 以下指令开始工作循环,等待PC机命令进行操作 */ } 为何两者对中断状态处理的操作不太一样?按照 PUB\TEST\MCU 中 TEST.C 源程序的 main() 主函数编写程序,CH375 可以正常响应中断请求吗? 请问 200762912463276.rar 数据包中 TEST.C 源程序的主程序 main(),在处理中断之前调用 sent_data() 上传“01234567”这组数据,处理完中断之后,又调用 sent_data() 上传“01234567”这组数据,请问会不会影响中断子程序 mCh375Interrupt( ) 返回数据反码的操作?