你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于printf重定向到usbCDC(VCP)的问题

[复制链接]
Genglilai 提问时间:2015-12-29 17:27 /
我使用的是IAR+F103+CUBE在写程序
最近想搞一下USB CDC虚拟串口,我想把虚拟串口的输出,重定义到printf上
首先参考了printf重定义到uart的方法,把uart发送函数改为虚拟串口发送函数
结果发送不出来东西,而使用虚拟串口发送函数直接发送的东西却能发送到电脑上
有没有搞过相关开发的大侠们,求各位指点

  1. #ifdef __GNUC__
  2. /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
  3. set to 'Yes') calls __io_putchar() */
  4. #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
  5. #else
  6. #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
  7. #endif /* __GNUC__ */
复制代码

  1. PUTCHAR_PROTOTYPE
  2. {
  3.   /* Place your implementation of fputc here */
  4.   /* e.g. write a character to the USART1 and Loop until the end of transmission */
  5.   CDC_Transmit_FS( (uint8_t*)ch, 1);
  6.   return ch;
  7. }
复制代码


收藏 2 评论10 发布时间:2015-12-29 17:27

举报

10个回答
watershade 回答时间:2015-12-29 20:16:25
楼主的做法没问题,如果你用的板子是别人的建议看一下原理图。另外你可以用uart单纯的发送数据做个实验。然后在重定向。
dsjsjf 回答时间:2015-12-30 20:04:40
帮顶      
秋水之下 回答时间:2016-12-16 19:08:48
CDC_Transmit_FS((uint8_t*)&ch, 1);
  return ch;不应该这样吗
斜阳__ 回答时间:2016-12-17 09:17:53
帮顶                     
jayyf1 回答时间:2017-11-22 18:13:12
楼主,USB CDC重定向问题解决了吗?我也是printf发不出数据,CDC_Transnit_FS没问题
血亦友 回答时间:2017-12-13 09:23:07
int fputc(int ch,FILE *F)
{
        CDC_Transmit_FS((uint8_t *)&ch,1);
        return ch;
}
我使用重定向函数是这个,但是只只能发储区printf字符串的第一个符号,后面的都发不出去
g921002 回答时间:2017-12-13 18:50:46
建議用sprinf做比較彈性。
  1. uint8_t usbtxbuf[1024];
  2. #define usbMsg(...) sprintf((char*)usbtxbuf, __VA_ARGS__);CDC_Transmit_FS(usbtxbuf,strlen((char*)usbtxbuf))
复制代码
li170. 回答时间:2018-2-4 21:52:49
int fputc(int ch, FILE *f)
{
  
  while(CDC_Transmit_FS((uint8_t*)(&ch),1)!=USBD_OK){}
  return ch;
}
这样就可以发送了,但是需要关闭串口助手,再开启串口助手,不知道为什么,望大神指点下
Kevin201707 回答时间:2019-8-8 16:23:11
感谢感谢
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版