STM32F103C8T6的USB虚拟串口实现
1.实现步骤
电脑安装VCP_V1.4.0_Setup.exe
在工程文件夹下新建USB文件夹,拷贝官方USB驱动库相关代码
USB文件夹下新建CONFIG文件夹存放Virtual COM相关代码
进入工程,新建分组USB_CORE和USB_CONFIG,按图所示添加.c文件
按图所示添加头文件路径
2.性能测试
include “sys.h”
#include “delay.h”
#include “usart.h”
#include “led.h”
#include “lcd.h”
#include “u***_lib.h”
#include “hw_config.h”
#include “u***_pwr.h”
int main(void)
{
u16 t;
u16 len;
u16 times=0;
u8 u***status=0;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
SystemInit();
LED_Init();
delay_ms(1800);
USB_Port_Set(0);
delay_ms(700);
USB_Port_Set(1);
Set_USBClock();
USB_Interrupts_Config();
USB_Init();
while(1)
{
if(u***status!=bDeviceState)
{
u***status=bDeviceState;
if(u***status==CONFIGURED)
{
LED1=0;//DS1ÁÁ
}else
{
LED1=1;//DS1Ãð
}
}
if(USB_USART_RX_STA&0x8000)
{
len=USB_USART_RX_STA&0x3FFF;
for(t=0;t《len;t++)
{
USB_USART_SendData(USB_USART_RX_BUF[t]);
}
u***_printf(“rnrn”);
USB_USART_RX_STA=0;
}else
{
times++;
if(times%5000==0)
{
u***_printf(“”);//想打印什么都行,上下同
u***_printf(“”);
}
if(times%200==0)u***_printf(“”);
if(times%30==0)LED0=!LED0;
delay_ms(10);
}
}
}
拷贝上面代码到主函数后,烧录,用USB将STM32连接电脑,查看设备管理器是否连接成功。若失败则为代码问题,仔细检查。然后利用一位大佬写的测速软件测速即可(代码只写了下行测试)。