【STM32F103C8】配置USB CDC虚拟串口
·
概要
硬件:STM32F103C8最小系统板。
目的:熟悉STM32CubeMX软件进行USB CDC虚拟串口的配置。
依赖:【STM32F103C8】GPIO点亮LED灯。
硬件
原理图

软件
打开MX工程
在【STM32F103C8】GPIO点亮LED灯中,双击打开stm32f103c8.ioc工程,已经配置好了LED和SWD固件烧录。
配置USB外设
启用USB Device (FS),其他保持默认。
启用USB CDC
找到USB_DEVICE,选择Communication Device Class (Virtual Port Com),其他保持默认。
打开HSE
需要用到外部高速时钟,否则时钟树配置中USB时钟将达不到48MHz。
配置时钟树
点击Clock Configuration,同意自动配置时钟树。
生成代码
点击右上角GENERATE CODE生成代码。
添加应用程序
main.c中添加头文件和周期打印,usbd_cdc_if.c中添加回显。
/* USER CODE BEGIN Includes */
#include "usbd_cdc_if.h"
/* USER CODE END Includes */
// ...............分界线..............
/* USER CODE BEGIN WHILE */
uint8_t str[] = "Hello, World!\r\n";
while (1)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
CDC_Transmit_FS(str, strlen((char*)str));
HAL_Delay(5000);
/* USER CODE END WHILE */
// ...............分界线..............
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
/* USER CODE BEGIN 6 */
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
CDC_Transmit_FS(Buf,*Len);
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
return (USBD_OK);
/* USER CODE END 6 */
}
注意事项
编译下载固件后,将烧录器和USB拔掉使芯片下电,仅接上USB连接电脑。设备管理器会多一个串口,使用上位机串口工具,任意波特率等配置方式发数据,串口工具将回显发送的数据。
附件代码
参考文献
[1] STM32F103C8T6的USB—CDC虚拟端口组件(HAL)_stm32f103c8t6 usb hal-CSDN博客
[2] STM32USB虚拟串口通讯 - 电子发烧友网
更多推荐


所有评论(0)