[url=]#申请原创#@21小跑堂 [/url]
STM32的很多系列都带有USB功能配置USB时钟
USB的工作时钟是48M,用HSI倍频到48M:
添加USB功能
添加VCP功能
发送
在main.c这个文件里面添加如下代码,就可以发送数据,虚似串口的波特率随便选择一个即可:
/* Infinite loop */
/* USER CODE BEGIN WHILE */
char str[] = "Hello World!\n";
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
CDC_Transmit_FS((uint8_t*)str, 13);
HAL_Delay(100);
}
/* USER CODE END 3 */
接收
在CDC_Receive_FS这个函数里面就可以得到VCP发送过来的数据:
重映射printf输出
也可以把USB作为printf来输出log信息
int fputc(int ch, FILE *f)
{
while(CDC_Transmit_FS((uint8_t *)&ch, 1) == USBD_BUSY);
return ch;
}
效果
|