armos 发表于 2022-2-3 00:39:05

100元辛苦费能不能帮忙看看下面的STM32 USB程序为什么不能通用?

原贴子:https://www.amobbs.com/thread-5761587-1-1.html

就是我在STM32F103RBT6上写的USB程序在STM32F103C8T6上没法用USB上位机连接通。
我以前的时候都是直接通用的,更多的时候单片机型号都没有改,直接修改就行的
然后我用很早以前的USB代码写入后看了,是可以通用的,应该是代码中的问题。附件是相关文件。




qwe2231695 发表于 2022-2-3 00:49:46

本帖最后由 qwe2231695 于 2022-2-3 00:55 编辑

判断全/低速设备是D+/D- 上在连接时的电压要到3V,,

一般USB HUB上D+/D- 都有15K下拉电阻,所以在3.3V设备上得用1.5k上拉,5V的话上拉,得用10K上拉。

另外上拉要靠近座子,不能在限流电阻后面。

akey3000 发表于 2022-2-3 08:41:32

找个开发板对比验证下

t3486784401 发表于 2022-2-3 12:42:23

换板子吧,在我手头 Arduino 版本的 F103C8 上直接就可以运行。

操作步骤:

1. 解包 1L 位置压缩包,上位机有 exe 可直接运行,下位机使用 MDK 重编译成 HEX(附件);
2. 使用串口烧录入 F103C8,断电切换回 APP 模式;
3. 插入 Win10x64 系统 USB,系统提示 STM32_HIDUSB 安装成功,之后上位机可以成功打开/关闭设备(附图);
4. 使用 BusHound 监控,找到了一个 barcode reader 设备,可以检测到打开瞬间的 USB 通信(附图).

附上图片:

打开关闭设备:






BusHound:



用于运行的 F103C8,山寨板没原理图,目测就是常见 F103 连法:




最后附上我编译的 HEX 文件供测试,以防 LZ 编译器有毛病:

----------------------------------------------------------------------------

建议:

a. 检查 LZ 板子是否存在虚焊/短路,尤其是 F103 管脚、USB 相关走线;
b. 测试我附件中上传的 HEX 是否也异常;
c. 换板子重试

armos 发表于 2022-2-4 10:10:42

t3486784401 发表于 2022-2-3 12:42
换板子吧,在我手头 Arduino 版本的 F103C8 上直接就可以运行。

操作步骤:


奇怪了,你的HEX还是不行,开发板本身的USB是可以的,用其他的程序使用USB可以通信,就这个不行
会不会是买到假的STM32的原因。

t3486784401 发表于 2022-2-4 10:22:15

armos 发表于 2022-2-4 10:10
奇怪了,你的HEX还是不行,开发板本身的USB是可以的,用其他的程序使用USB可以通信,就这个不行
会不会是 ...

BluePill 因为用量大的原因,山寨片子比较多。

目测是时钟初始化有点问题。建议在现有程序里加个闪灯代码自检下,看是否在哪里死循环了

armos 发表于 2022-2-4 10:32:20

t3486784401 发表于 2022-2-4 10:22
BluePill 因为用量大的原因,山寨片子比较多。

目测是时钟初始化有点问题。建议在现有程序里加个闪灯代 ...

对的我就是那种最小系统板 我试一下

armos 发表于 2022-2-4 22:01:18

t3486784401 发表于 2022-2-4 10:22
BluePill 因为用量大的原因,山寨片子比较多。

目测是时钟初始化有点问题。建议在现有程序里加个闪灯代 ...

我重新做了一版 用STM32F103RBT6手里还有十几片STM32涨价前的片子 我试一下

astankvai 发表于 2022-2-5 08:27:11

看下时钟系统的配置。 USB 要48M的PLL 时钟。
页: [1]
查看完整版本: 100元辛苦费能不能帮忙看看下面的STM32 USB程序为什么不能通用?