CH32F103移植USB不成功

在一些STM32F103的项目上改用CH32F103移植USB有问题。无论是加内部上拉还是接外部上拉,Win10都报不可识别的设备。大概跟了下,能接收到pc发来的请求,但是数据不对,也就没正确响应。硬件没问题,换上stm32就好用。


https://github.com/Serasidis/STM32_HID_Bootloader

https://github.com/Klipper3d/klipper


目前试了以上两个项目CH32F103都不行,换上STM32就好用。STM32的官方例程移植到CH32可用。


你好,麻烦将相关工程发我邮箱,我测试一下。邮箱:wangyy@wch.cn.


谢谢这么快回复。


工程恐怕要你去github自己撸,都是开源的。


我是在raspberry pi 4上直接git clone回来编译的,因为pi上的编译环境都是做好的,不用再配置。


https://www.klipper3d.org/Installation.html


Building and flashing the micro-controller?

To compile the micro-controller code, start by running these commands on the Raspberry Pi:

cd ~/klipper/
make menuconfig

Select the appropriate micro-controller and review any other options provided. Once configured, run:

make


选STM32 F1 和 USB接口 不要bootloader 编译后在out目录里有elf文件可以用jflash烧。其它先不管,只要插上能识别虚拟串口就算成功。我现在DP上接了上拉电阻 想跟STM32代码兼容,编译出来的二进制代码上stm32可以 上ch32就不识别usb。




另外 如果不方便编译的话 可以看下src目录下的usbfs.c和generic下的cdc代码


STM32 HID Bootloader也是类似情况,STM32上ok,CH32不识别USB。那个要gcc工具链编译,可以在这里下binary先试下:https://github.com/Serasidis/STM32_HID_Bootloader/releases 


你好,首先确认一下硬件,请问你的硬件板使用的电源是多少?我们芯片的USBD是可以直接用你之前方案的USB工程代码的,甚至都不需要移植,直接使用。需要注意的是,CH32F103是宽电压输入,支持最高5.5V。如果芯片电压是5V的话,需要配置USB电压,配置寄存器如下:

image.png

另外可以加一下我的微信:18951773083,方便资料共享以及更便捷的沟通。


你想同样硬件都能上STM32,那肯定是3.3V。怀疑缓冲初始化,或者中断处理方面的事情,单纯USB寄存器我大概看了,两款芯片暂时没发现本质区别。




请问解决了吗 同样的问题


您好,若你是直接用的之前ST的工程和测试板,在外接上拉电阻的情况下,无需开启内部上拉电阻。此外,在USB初始化的时候注意状态寄存器要全清,具体配置可参考下图。此外,可以参考一下6楼,注意一下芯片电压配置。后面若有问题,可通过邮箱(lzs@wch.cn)和我沟通。

image.png


只有登录才能回复,可以选择微信账号登录