汇集网友智慧,解决技术难题
Device STM32F429 pc USB 函数
赞0
评论
2021-01-11
2020-12-24
点击图片添加到编辑器内容中
点击文件名将附件添加到文章中
提交
tyw
316个答案
天意无罪
287个答案
xch
209个答案
jjjyufan
199个答案
coody
189个答案
LcwSwust
158个答案
chunyang
135个答案
tpgf
112个答案
赞0
评论
2021-01-11
赞0
评论
2021-01-11
赞0
评论
2021-01-11
赞0
评论
2021-01-11
赞0
评论
2020-12-24
赞0
评论
2020-12-24
赞0
static uint16_t usb_rdat_length = 0;
然后使用串口助手
[09:38:33.260]发→◇64 73 66 61 73 66 □
[09:38:33.266]收←◆64 73 66 61 73 66 18 47
[09:38:34.916]发→◇64 73 66 61 73 66 □
[09:38:34.921]收←◆64 73 66 61 73 66 18 47
[09:38:35.095]发→◇64 73 66 61 73 66 □
[09:38:35.102]收←◆64 73 66 61 73 66 18 47
[09:38:35.284]发→◇64 73 66 61 73 66 □
[09:38:35.289]收←◆64 73 66 61 73 66 18 47
可以看到每次增加的字节长度都是不定长的。
评论
2020-12-24
赞0
{
/* USER CODE BEGIN 6 */
USB_Uartx_RxCpltCallback();//添加的自定义回调函数
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
return (USBD_OK);
/* USER CODE END 6 */
}
第一个是在回调函数中添加一个函数
2.void USB_Uartx_RxCpltCallback(void)
{
uint16_t usb_rx_len = 0;
usb_rx_len = strlen((char*)UserRxBufferFS);
if((usb_rdat_length+usb_rx_len)<USB_DAT_LENMAX)//不超过内存最大值
{
memcpy(usb_rdat+usb_rdat_length,UserRxBufferFS,usb_rx_len);//内存赋值
usb_rdat_length+=usb_rx_len;
}
memset(UserRxBufferFS,0x00,usb_rx_len);
}
第二个就是将缓存数据存在usb_rdat[]中。
3.[09:20:46.339]发→◇31 32 33 34 35 0D 0A □
[09:20:46.344]收←◆31 32 33 34 35 0D 0A 5E
[09:20:47.021]发→◇31 32 33 34 35 0D 0A □
[09:20:47.026]收←◆31 32 33 34 35 0D 0A 5E
[09:20:47.296]发→◇31 32 33 34 35 0D 0A □
[09:20:47.302]收←◆31 32 33 34 35 0D 0A 5E
[09:20:47.514]发→◇31 32 33 34 35 0D 0A □
[09:20:47.519]收←◆31 32 33 34 35 0D 0A 5E
第三个就是串口助手返回的数据。可以看到每次返回都会多出几个字节,进入仿真可以看到在UserRxBufferFS中就已经多了这么几个字节
评论
2020-12-24
赞0
评论
2020-12-24
您需要登录后才可以回复 登录 | 注册