所需工具
- CUBEMX5.6
- STM32F103ZET6开发板(正点原子战舰)
- LINK及其他线束
1、CUBEMX设置
- 设置SYSTEM CORE下的SYS和RCC选项。
- 设置USB
USB_MAX_NUM_INTERFACES是使用composite所使用的,这里使用默认即可。
USBD_MAX_NUM_CONFIGURATION是Compound的时候所使用的,这里选择默认。
USBD_MAX_STR_DESC_SIZ是字符描述符所用的内存空间大小,默认即可。
USBD_SELF_POWERED表示该设备是自供电还是由上位设备供电。
USBD_DEBUG_LEVEL是否使用USB库自带的打印信息,一般不适用。
USB_CDC_(RX_or_TX)_BUFFTER_SIZE是CDC类特有的参数,表示发送和接收的缓存大小,一般对于模拟串口而言,1000字节是够用的。
- 设置时钟
- 修改堆栈大小
2、修改main.c文件
- 添加头文件
/* USER CODE BEGIN PTD */
#include "usbd_cdc.h"
#include "usbd_cdc_if.h"
/* USER CODE END PTD */
- 修改主函数
unsigned char test[] = "123456";
while (1)
{
CDC_Transmit_FS(iii,sizeof(iii));
HAL_Delay(1000);
}
测试结果
- 枚举结果
- 测试结果
具体应用
上面只是简单的测试CDC的发送,实际使用中还需要多一些处理.具体看这篇文章.