STM32 USB 编程要点

首页    嵌入式软硬件    STM32 USB 编程要点

STM32 USB 笔记1

//修改BUFF_LENGTH的长度即可修改每个包的大小
u8 Receive_Buffer[BUFF_LENGTH];
u8 Transi_Buffer[BUFF_LENGTH];

如果设置buffer的大小为64,但是只发送10个数据,那10个数据的后面会出现乱码,是因为USB在发送信号的时候都是以64为单位打包的(推断)。

//USB发送字符串
void USB_SendString(u8 *str)	   // 
{
	u8 ii=0;   
	while(*str)
	{
		 Transi_Buffer[ii++]=*(str++);
		 if (ii ==10) break;
	 }
	 UserToPMABufferCopy(Transi_Buffer, ENDP2_TXADDR, 10);
	 _SetEPTxStatus(ENDP2,EP_TX_VALID);
}

在修改完程序后,重启STM32,然后使用USB调试助手搜索USB设备,打开USB设备即可与STM32通信。有时候调试助手会找不到STM32或者找到了时钟接收不到数据,这时应在调试助手中断开USB设备,重启STM32然后再次搜索设备,连接设备。