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

arhaha 发表于 2019-11-30 10:01

请教STM32F103的USB串口的问题

我使用的是 STM32F103C8T6系统板,某宝上很常见的型号。使用中,写入了stmicroelectronics的BOOTLOADER,具体界面如下:
https://image.geek-workshop.com/forum/201911/30/092433imrnisfbtpef3rks.png


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

https://image.geek-workshop.com/forum/201911/30/093034xmkvv06z7hryhh71.png

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

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

其二:每次重新插入电脑后,设备都会变成如下图样的:
https://image.geek-workshop.com/forum/201911/30/093948sklwlkvlqlffl0qw.png St2.png (67.93 KB, 下载次数: 0)
下载附件
20 分钟前 上传



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

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

t3486784401 发表于 2019-11-30 16:21

我编译一般都是选择 Generic F103C 处理器,USB 模拟个 HID 捎带着串口(显示Maple串口)。
并没有出现串口不稳定的现象。

另外我不用额外的 Bootloader,只用 STM32 自带的 Bootloader,通过硬件串口下载

arhaha 发表于 2019-12-2 09:35

谢谢 t3486784401的提示,改用硬串口,数据传输的确很稳定了。但是也有一个问题,假如有三个外部的串口设备,把Serial1, Serial2, Serial3都占用了,那就不好办了。所以最好还是要把这个USB串口的问题找出来。

arhaha 发表于 2019-12-4 09:44

本帖最后由 arhaha 于 2019-12-4 09:46 编辑

搞定了。方法就是加大延迟时间,把delay(1)改为delay(10),就没有数据行丢失了。这个USB串口也是够扯蛋的!:(,估计类似于软串口,所以需要时间来处理。
页: [1]
查看完整版本: 请教STM32F103的USB串口的问题