STM32 HAL库USB虚拟串口
1. 前期准备
安装好STM32CubeMX
安装好Clion
2. 创建项目
USB虚拟串口配置如下:
USB时钟配置为48MHz。
生成项目前,Heap Size,Stack Size设置大一点,我这里均设置为0x1000。STM32F103的CAN和USB是共用IO口的,因此,需要确保没有使用CAN功能,这点很关键。
3. 编辑代码
- 虚拟串口发送测试
项目自动创建了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);
}- 虚拟串口接收测试
在虚拟串口接收函数中,将接收到数据通过虚拟串口原样发送出去:
//函数位于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. 小结
本章学习了HAL库USB虚拟串口发送、接收试验。
所属系列
从当前文章继续阅读它所在合集中的前后内容。
关于我和 Hugh 学嵌入式开发这件事 —— STM32 篇 第 14 / 17 篇
查看合集 > 本作品集内教程基于 [Hugh](https://rymcu.com/user/hugh) 的创作基础上进行修订发布 关于我和 Hugh 学嵌入式开发这件事
相关文章
优先推荐同专题、同标签和同作者内容,补足热门文章。
评论 0
登录 后参与评论
评论
成为第一个评论的人