快捷搜索:  汽车  科技

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)采用SWD模式选用J-LINK调试配置USB的描述参数配置USB的数据缓存大小3)上述参数配置完后,可以去配置具体生成工程的参数,本例子使用IAR工程,生成IAR工程后,将调试参数由ST-LINK改成J-LINK,并使用SWD模式。

题记:之前学习了STM32F103的许多基本外设操作,今天来学习USB通信的基本操作,并记录下学习的过程。工程配置步骤

1)配置系统时钟,实现系统72MHz的频率,USB外设48MHz频率

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(1)

系统时钟树配置

2)配置USB外设IO口和基本参数

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(2)

选择使用USB IP为VCP模式

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(3)

配置USB的描述参数

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(4)

配置USB的数据缓存大小

3)上述参数配置完后,可以去配置具体生成工程的参数,本例子使用IAR工程,生成IAR工程后,将调试参数由ST-LINK改成J-LINK,并使用SWD模式。

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(5)

选用J-LINK调试

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(6)

采用SWD模式

添加用户代码

上述配置好后,由于F103的USB重新连接枚举的DP需要外部控制上拉电阻,所以需要再额外添加一部分控制代码即可枚举成功。

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(7)

初始化IO配置和枚举上拉检测IO初始化代码

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(8)

枚举上拉检测控制代码

完成上述配置后,下载程序后,即可在电脑上枚举成功。其PID和VID的值正是之前使用MX CUBE软件配置的参数值。

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(9)

虚拟出来的串口设备

添加发送和接收代码

USB库中已经实现了数据的收发,只需直接使用,用户重点处理数据方面的应用即可。

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(10)

主函数中发送数据

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(11)

接收到的数据再发送回去

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(12)

解决无法发送64字节整数倍的问题

结果

stm32串口通信代码(STM32F103编程学习USB虚拟串口篇)(13)

虚拟串口监控的数据

从结果中可以看出串口可以实现数据的收发。第一次USB虚拟串口成功。

猜您喜欢: