请教STM32F103的USB串口的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3720|回复: 3

请教STM32F103的USB串口的问题

[复制链接]
发表于 2019-11-30 10:01 | 显示全部楼层 |阅读模式
我使用的是 STM32F103C8T6系统板,某宝上很常见的型号。使用中,写入了stmicroelectronics的BOOTLOADER,具体界面如下:



Win系统中安装的驱动是“MapleMini”。然后在Arduino1.6.5中的设置如下:



此后的程序上传过程都能正常进行。但是使用中有两个问题,向各位请教一下。

其一:最严重的问题,上位机 (比如常见的串口调试助手) 通过USB 串口发送字符串给单片机时,时常发送不成功(单片机收不到,概率上有30%~50%机会会出现这个问题),这个不知何故?另外,单片机发回的数据行,也经常有丢掉的部分(整行丢失),后来在每一个Serial.println()后面跟上一个delay(1)语句,情况有很大的改善,但是还会偶尔丢掉一些数据行。我的数据行都不长的,一般就是几个到十几个字符。

其二:每次重新插入电脑后,设备都会变成如下图样的:
[size=0.83em]St2.png (67.93 KB, 下载次数: 0)
下载附件
[color=rgb(153, 153, 153) !important]20 分钟前 上传




需要手工“卸载”该设备,然后点击“扫描检测硬件改动”后,才又在“端口”中以串口的形式出现。这样就很不方便了,总不能一直让用户来做这个卸载然后扫描的操作吧。

敬请各位赐教!!是不是你们装的别的驱动或者BootLoader就没有这个问题?

发表于 2019-11-30 16:21 | 显示全部楼层
我编译一般都是选择 Generic F103C 处理器,USB 模拟个 HID 捎带着串口(显示Maple串口)。
并没有出现串口不稳定的现象。

另外我不用额外的 Bootloader,只用 STM32 自带的 Bootloader,通过硬件串口下载
 楼主| 发表于 2019-12-2 09:35 | 显示全部楼层
谢谢 t3486784401的提示,改用硬串口,数据传输的确很稳定了。但是也有一个问题,假如有三个外部的串口设备,把Serial1, Serial2, Serial3都占用了,那就不好办了。所以最好还是要把这个USB串口的问题找出来。
 楼主| 发表于 2019-12-4 09:44 | 显示全部楼层
本帖最后由 arhaha 于 2019-12-4 09:46 编辑

搞定了。方法就是加大延迟时间,把delay(1)改为delay(10),就没有数据行丢失了。这个USB串口也是够扯蛋的!,估计类似于软串口,所以需要时间来处理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 07:26 , Processed in 0.103802 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表