STM32·

STM32篇——USB虚拟串口

ronger

ronger

6601 0

STM32 HAL库USB虚拟串口

1. 前期准备

安装好STM32CubeMX

安装好Clion

2. 创建项目

USB虚拟串口配置如下:

USB时钟配置为48MHz

生成项目前,Heap SizeStack Size设置大一点,我这里均设置为0x1000STM32F103CANUSB是共用IO口的,因此,需要确保没有使用CAN功能,这点很关键。

3. 编辑代码

  1. 虚拟串口发送测试

项目自动创建了USB初始化代码,main.c中添加头文件及虚拟串口发送测试代码:

#include "usbd_cdc_if.h"
//main函数中日安佳如下代码
  u_char USB_CDC_buff[] = {"STM32 HAL库USB虚拟串口测试!\r\n"};
  while (1)
  {

      CDC_Transmit_FS(USB_CDC_buff, sizeof(USB_CDC_buff));
      HAL_Delay(2000);
 }
  1. 虚拟串口接收测试

在虚拟串口接收函数中,将接收到数据通过虚拟串口原样发送出去:

//函数位于usbd_cdc_if.c文件中
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
  /* USER CODE BEGIN 6 */
//接收到的数据发送回去,此行代码手动添加,其余均自动生成!
  CDC_Transmit_FS(Buf,Len[0]);

  USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
  USBD_CDC_ReceivePacket(&hUsbDeviceFS);
  return (USBD_OK);
  /* USER CODE END 6 */
}

4. 编译下载

将程序编译下载至开发板,并将开发板连接至PC,打开串口调试助手RYCOM,并设置为:115200+8+N+1,接收结果如下。

5. 小结

本章学习了HALUSB虚拟串口发送、接收试验。

所属系列

从当前文章继续阅读它所在合集中的前后内容。

关于我和 Hugh 学嵌入式开发这件事 —— STM32 篇 第 14 / 17 篇
查看合集

> 本作品集内教程基于 [Hugh](https://rymcu.com/user/hugh) 的创作基础上进行修订发布 关于我和 Hugh 学嵌入式开发这件事

相关文章

优先推荐同专题、同标签和同作者内容,补足热门文章。

评论 0

登录 后参与评论

评论

成为第一个评论的人