OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4639|回复: 1

关于使用STM32F429开发指南做USB虚拟串口所发现的一个小问题

[复制链接]

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2021-5-29 10:27:27 | 显示全部楼层 |阅读模式


发现发送函数内没有做置位操作,也就是如果不发送出去的话会一直保留直到发送出去,应该在usb_printf内对APP_Rx_ptr_in 置位,不知道但是做的时候是故意这样的还是没发现@正点原子


//usb 虚拟串口 ,printf 函数
//确保一次发送数据不超 USB_USART_REC_LEN 字节
void usb_printf(char* fmt,...)
{
u16 i,j;
va_list ap;
va_start(ap,fmt);
vsprintf((char*)USART_PRINTF_Buffer,fmt,ap);
va_end(ap);
i=strlen((const char*)USART_PRINTF_Buffer);//此次发送数据的长度

for(j=0;j<i;j++)//循环发送数据
{
VCP_DataTx(USART_PRINTF_Buffer[j]);
}
}




//发送一个字节给虚拟串口 (发给电脑)
//data:要发送的数据
//返回值:USBD_OK
uint16_t VCP_DataTx (uint8_t data)
{
APP_Rx_Buffer[APP_Rx_ptr_in]=data; //写入发送 buf
APP_Rx_ptr_in++; //写位置加 1
if(APP_Rx_ptr_in==APP_RX_DATA_SIZE) //超过 buf 大小了,归零.
{
APP_Rx_ptr_in = 0;
}
return USBD_OK;
}



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
 楼主| 发表于 2021-6-1 15:16:42 | 显示全部楼层
发现置位没用 此贴作废
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 17:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表