广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    HAL库如何使用USB虚拟串口

    来源:网络收集  点击:  时间:2024-08-15
    【导读】:
    对于STM32的USB功能,通常都使用官方的USB库操作,虽然它已经将协议的具体实现封装好了,但是庞大的代码量让刚接触它的人望而却步。利用HAL库可以很快地生成一个USB代码,本人经过一番摸索,终于成功在STM32F103系列芯片上成功使用了USB虚拟串口功能,在这里记录下,也希望对需要的朋友有帮助。HAL库设置1/10分步阅读

    第一步:打开STM32CubeMX软件,新建一个工程,选择目标板对应的芯片。

    2/10

    第二步:在Peripherals配置SYS的Debug为“Serial Wire”,因为HAL库默认配置会导致不能正常烧录程序,配置为“Serial Wire”则可以使用ST-LINK正常刷程序。

    3/10

    第三步:在Peripherals展开“USB”使能Device。

    4/10

    第四步:展开“MiddleWares”-“USB_DEVICE”,配置“Class For FS IP”为“Communication Device Class (Virtual Port)”,即虚拟串口。

    5/10

    第五步:展开“Peripherals”-“RCC”,配置时钟,这里选择“Crystal/Ceramic Resonator”即外部晶振,为了方便,这里将高速和低速时钟都选择外部时钟。

    6/10

    第六步:外设配置完成后芯片引脚图如下。

    7/10

    第七步:切换至“Clock Configuration”页,配置时钟树,如果是第一次切入会弹出提示“自动计算时钟”的提示,因为USB的时钟配置要求比较多,如果不是很熟悉建议选择“Yes”,软件会根据设置的时钟源将时钟树自动设置好。

    8/10

    第八步:软件配置OK,接下来通过点击“Project”-“Setting...”调出“Project Settings”,给新工程起个名,Toolchain/IDE这里选择Keil5,其它的保持默认,需要注意的是,默认的堆栈比较小,可根据需求设置为需要的容量。设置完成后点击“OK”确认。

    9/10

    第九步:生成并编译代码。

    10/10

    第十步:将编译后的代码烧录到目标板,重启目标板,如果在设备管理中看到一个新的STMicroelectronics Virtual COM Port那么操作就成功了,当然前提是已经安装了STM虚拟串口驱动,这个可以在STM的官方网站获得。

    发送串口数据1/3

    接下来测试下虚拟串口的发送功能,需要用到位于usbd_cdc_if.c的CDC_Transmit_FS函数,为此需要将usbd_cdc_if.h包含到调用该函数的c文件中。

    2/3

    发送函数CDC_Transmit_FS有两个参数,第一个是要发送的数据指针,第二个是需要发送的数据个数(以字节位单位),由于没有其他程序,这里使用HAL_Delay阻塞延时。HAL_Delay(1000);//延时1000毫秒CDC_Transmit_FS((uint8_t *)Hello world !\r\n, sizeof(Hello world !\r\n));

    3/3

    确认修改后重新编译并烧录程序,重启目标板,打开PC端的串口调试助手,可以看到熟悉的“Hello world!”了。

    注意事项

    1、如果插上电脑后设备显示感叹号,请确认是否安装了STM的虚拟串口驱动。

    2、如果插上电脑,设备管理没有任何更新,那么请确认USB的D+是否有上拉电阻(通常为1.5k)。

    3、STM32的USB虚拟串口不受波特率限制。

    STM32HALUSB虚拟串口
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.ff371.cn/art_1124409.html

    相关资讯

    ©2019-2020 http://www.ff371.cn/ 国ICP备20009186号06-02 17:26:05  耗时:0.809