完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在官方的cdc例程CH573_CDC_OK.zip,基础上修改,原版程序文件太复杂,不便学习
所以在其基础上,删除了shell文件夹(应该是用于调试的),key按键等代码。仅保留cdc相关代码。最终例程如下: CH573_CDC_Lite.zip 程序功能: 模拟CDC设备,将usb接口模拟成串口设备,实现USB和串口0之间的数据互传。也可以将串口0代码删除,并修改usb处理函数如下,实现usb模拟串口自发自收。 /** * USB<-->串口数据处理 */ void usb_uart_comm_handle(void) { uint8_t len = 0; static uint8_t tempbuf[128] = {0}; len = ring_buffer_num_items(&usb_to_uart_rb); if (len != 0) { len = len >= 64 ? 64 : len; ring_buffer_dequeue_arr(&usb_to_uart_rb, pEP2_IN_DataBuf, len); DevEP2_IN_Deal(len); } } |
|
相关推荐
1个回答
|
|
源码中该处建议修改成如下字符编写方式,直观易懂,并且源码中序列号描述符实测是错误的,按如下编写才可正常显示。
其中字符可自行修改内容,每个字符后都要接一个0x00。但注意每个数组第一个成员表示成员个数,需要随成员数量改变。第二个0x03是固定的。 // 语言描述符const UINT8 MyLangDescr[] = {0x04, 0x03, 0x09, 0x04};// 厂家信息 wchcnconst UINT8 MyManuInfo[] = {0x0E, 0x03, 'w', 0, 'c', 0, 'h', 0, '.', 0, 'c', 0, 'n', 0};// 产品信息 CH57xconst UINT8 MyProdInfo[] = {0x0C, 0x03, 'C', 0, 'H', 0, '5', 0, '7', 0, 'x', 0};// 序列号描述符 TESTconst UINT8 MySerDes[] = {0x0A, 0x03,'T', 0x00, 'E', 0x00, 'S', 0x00, 'T', 0x00}; |
|
|
|
只有小组成员才能发言,加入小组>>
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2290 浏览 2 评论
1965 浏览 1 评论
ch554g的板子准备烧录程序,用串口总是显示等待设备连接是为啥
777浏览 14评论
请问ch32v307用ch-link调试或者读写有什么特殊操作方法吗?
698浏览 13评论
Windows系统下如何确定COM口为CH340/CH341设备?
1811浏览 12评论
522浏览 12评论
CH32V307以太网接近满速后,几秒或几十秒后就死机怎么解决?
1666浏览 11评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-8-18 19:53 , Processed in 0.649494 second(s), Total 65, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:粤 B2-20160233 工商网监 湘ICP备2023018690号