从合宙商城9.9元入手一块Air32F103 Blue Pill开发板,整理调试笔记如下:
ModuleDemo目录里USB外设使用示例:
├─USB │ ├─Device_Firmware_Upgrade USB DFU │ ├─Keyboard USB键盘 │ └─Virtual_COM_Port USB虚拟串口
//处理从USB虚拟串口接收到的数据
//databuffer:数据缓存区
//Nb_bytes:接收到的字节数.
void USB_To_USART_Send_Data(u8* data_buffer, u8 Nb_bytes)
{
u8 i;
u8 res;
for(i=0;i<Nb_bytes;i++)
{
res=data_buffer[i];
if((USB_USART_RX_STA&0x8000)==0) //接收未完成
{
if(USB_USART_RX_STA&0x4000) //接收到了0x0d
{
if(res!=0x0a)USB_USART_RX_STA=0;//接收错误,重新开始
else USB_USART_RX_STA|=0x8000; //接收完成了
}else //还没收到0X0D
{
if(res==0x0d)USB_USART_RX_STA|=0x4000;
else
{
USB_USART_RX_BUF[USB_USART_RX_STA&0X3FFF]=res;
USB_USART_RX_STA++;
if(USB_USART_RX_STA>(USB_USART_REC_LEN-1))USB_USART_RX_STA=0;//接收数据错误,重新开始接收
}
}
}
}
}
编译成功后下载到开发板,使用USB数据线连接开发板。
打开串口调试工具,可以发现新增了一个虚拟串口:
波特率配置为115200,打开串口,然后开始发送数据,会看到串口回显数据(注意:发送的数据必须以0x0D, 0x0A结尾)。