完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
以下是论坛里找到的沁恒厂商提供的CH579与BLE外设混合使用的例程DEMO
打开工程编译不过,发现缺少源文件,也是醉了,重新移植,看了这坨祖传的代码,看得真是心累,这是厂家雇大一学生写的吗?各种莫名其妙。不能规范一点么,为了节省成本真是不要face 原工程链接见附件: 言归正传!!!!!----------------------------------------------> 1. 同步标志位为什么要做反转, 2.这个数据收发的DEMO写得有什么问题没,为什么移植到目标芯片上就只收发成功了一次,后边全乱了套了。 /*发送数据长度*/ uint8_t UsbOut( uint8_t *pBuf,uint8_t len ) // 中断端点3发送 { uint8_t TxCnt,s,endp; endp = ThisUsbDev.GpVar[1]; while ( len ) { //mDelayuS( 200 ); R8_UH_TX_LEN = len >= 32 ? 32 : len; for ( TxCnt = 0; TxCnt != R8_UH_TX_LEN; TxCnt ++ ) { TxBuffer[ TxCnt ] = *pBuf; pBuf ++; } s = USBHostTransact( USB_PID_OUT << 4 |( endp & 0x7F), endp & 0x80 ? RB_UH_R_TOG | RB_UH_T_TOG : 0, 0 ); // OUT数据 if ( s == ERR_SUCCESS ) { len -= R8_UH_TX_LEN; endp ^= 0x80; // 同步标志翻转 ThisUsbDev.GpVar[1] = endp; // 保存同步标志位 } else return( s ); } return ERR_SUCCESS; } /*返回数据接收长度,数据存放RxBuffer*/ uint8_t UsbBulkIn( void ) { uint8_t i,s,len,endp = ThisUsbDev.GpVar[0]; s = USBHostTransact( USB_PID_IN << 4 | (endp & 0x7F), endp & 0x80 ? RB_UH_R_TOG | RB_UH_T_TOG : 0, 0 ); if ( s == ERR_SUCCESS ) { endp ^= 0x80; // 同步标志翻转 ThisUsbDev.GpVar[0] = endp; // 保存同步标志位 //tmos_memcpy(RX_BUF,RxBuffer,11); len = sizeof(RX_BUF); // 接收到的数据长度 if ( len ) { if(m_handlers) { usb_host_app_event_t event; event.type = USB_HOST_APP_DATA_IN; event.data.p_data = RxBuffer; //tmos_memcpy(event.data.p_data,RxBuffer,len); event.data.bytes = len; m_handlers(&event); } // USB_LOG("CH579 In data: n"); // for ( i = 0; i < len; i ++ ) USB_LOG("%02X ",(UINT16)(RxBuffer) ); // USB_LOG("n"); } return len; } else if ( s != ( USB_PID_NAK | ERR_USB_TRANSFER ) ) USB_LOG(" error %02xn",(UINT16)s); // 可能是断开了 return 0; } |
|
相关推荐
1个回答
|
|
|
1、同步标志位翻转是USB通讯协议的要求,必须要这么这么做的,如果想看原版协议,可以到USB ORG上下载USB的规范看看协议要求,学一门知识,东西还是比较多的,没法细讲。
2、主机收发,看代码写的没什么问题,你说的能收发一次,代码里面加点打印看看程序运行,如果乱了,一般可能是误操作,导致设备断连;或者设备还没准备好数据,没收到也有可能。 多加点打印跟踪一下。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
384 浏览 0 评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
893 浏览 0 评论
1487 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
3438 浏览 2 评论
2845 浏览 1 评论
安卓手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
1836浏览 1评论
1488浏览 1评论
386浏览 0评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
893浏览 0评论
488浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-18 14:12 , Processed in 0.757582 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
738