[STM32G4] STM32CubeMX配置STM32G431CBT6虚拟串口USB VCP

[复制链接]
11916|0
 楼主| dql2015 发表于 2024-3-4 21:30 | 显示全部楼层 |阅读模式
[url=]#申请原创#@21小跑堂 [/url]
STM32的很多系列都带有USB功能配置USB时钟
USB的工作时钟是48M,用HSI倍频到48M:

1.png


添加USB功能
2.png

添加VCP功能
3.png

发送
在main.c这个文件里面添加如下代码,就可以发送数据,虚似串口的波特率随便选择一个即可:
  1.   /* Infinite loop */
  2.   /* USER CODE BEGIN WHILE */
  3.   char str[] = "Hello World!\n";
  4.   while (1)
  5.   {
  6.     /* USER CODE END WHILE */

  7.     /* USER CODE BEGIN 3 */
  8.       CDC_Transmit_FS((uint8_t*)str, 13);
  9.       HAL_Delay(100);
  10.   }
  11.   /* USER CODE END 3 */



接收
在CDC_Receive_FS这个函数里面就可以得到VCP发送过来的数据:

屏幕截图 2024-03-04 212145.png

重映射printf输出
也可以把USB作为printf来输出log信息
  1. int fputc(int ch, FILE *f)
  2. {
  3.         while(CDC_Transmit_FS((uint8_t *)&ch, 1) == USBD_BUSY);
  4.         return ch;
  5. }

效果

屏幕截图 2024-03-04 212228.png


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

本版积分规则

104

主题

384

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部