完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用CH573的USB CDC串口,串口可以通讯,数据上下行正常。但是每次打开串口都会下发两次SET_LINE_CODING,数据还不一样,我抓到的打印信息如下:
CH573>>[I/USB/CDC] set line coding dataRate : 9600 , charFormat : 0 parityType : 0 dataBits : 7 [I/USB/CDC] set line coding dataRate : 8609 , charFormat : 0 parityType : 0 dataBits : 8 [I/USB/CDC] set line coding dataRate : 9600 , charFormat : 0 parityType : 0 dataBits : 7 [I/USB/CDC] set line coding dataRate : 8609 , charFormat : 0 parityType : 0 dataBits : 8 第一次的波特率是9600 第二次这个8609是怎么回事? 前面的只有波特率是正常的,后面这次波特率不对 其他的都是正确的。 部分代码如下: // endpoint0 out case UIS_TOKEN_OUT: { LOG_D("endpoint0 out -> len = %d", R8_USB_RX_LEN); len = R8_USB_RX_LEN; /* 类请求 且是 设置linecodeing*/ if (SetupReqCode == SET_LINE_CODING) { if (RB_U_TOG_OK) { Line_Coding.dwDTERate = *(uint32_t *)pEP0_DataBuf; Line_Coding.bCharFormat = pEP0_DataBuf[4]; Line_Coding.bParityType = pEP0_DataBuf[5]; Line_Coding.bDataBits = pEP0_DataBuf[6]; LOG_I("set line coding dataRate : %ld , charFormat : %d parityType : %d dataBits : %d", Line_Coding.dwDTERate, Line_Coding.bCharFormat, Line_Coding.bParityType, Line_Coding.bDataBits); R8_UEP0_T_LEN = 0; R8_UEP0_CTRL |= UEP_R_RES_ACK | UEP_T_RES_ACK; // 准备上传0包 } } else { R8_UEP0_T_LEN = 0; R8_UEP0_CTRL |= UEP_R_RES_ACK | UEP_T_RES_NAK; //状态阶段,对IN响应NAK } R8_UEP0_CTRL ^= RB_UEP_R_TOG; //同步标志位翻转 } break; |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
474 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2873 浏览 2 评论
2361 浏览 1 评论
814浏览 2评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
640浏览 1评论
497浏览 1评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
363浏览 1评论
639浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:08 , Processed in 0.953333 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号