AT32F413 USB虚拟串口 工作不稳定
本帖最后由 lcj1301 于 2022-7-5 15:56 编辑原来stm32 用cubemx生成的代码 移植到at32f413上,usb虚拟串口在72m下工作正常,频率变成192M以后 ,所有分频都已经按照AT32的寄存器重新修改 usb只能工作几十秒就没有数据了,这是什么原因 有人知道吗?还有个问题 想要内部48M直接给usb时钟,但是acc也开了,依然枚举不出设备,不知道还有什么问题
ST cubemx生成的代码只支持72M的,频率到192M的话需要修改代码的。
还有就是接内部48M到USB时钟,开启ACC等都是AT32独有的功能,需要使用AT32bsp才能实现。
因此建议基于AT32 BSP去开发,usb虚拟串口等案例都是现成的。 代码不能直接兼容的吧 72M内可以兼容,他这个是192M主频了,要修改代码。 这两套代码确实不能直接移植 本帖最后由 muyichuan2012 于 2022-7-2 17:24 编辑
at32f413/at33f403a软硬件兼容st103的,大概率可以直接用。 这肯定不得行啊,你ST是72MHZ,时钟和分频系数这些都不一样了。 软件不能兼容的 72M内大概率可以,超过72M不可以。 主频太快了吧 这个不稳定是什么意思 串口不稳定,可能是硬件的问题。 降低频率试试 连续的数据太多了。 是数据有丢失吗
AT32F413 USB虚拟串口 工作不稳定
用的ST的库?AT又不是完全兼容ST的啊,怎么这么多人直接拿ST的程序就来跑了。 本帖最后由 lvben5d 于 2022-8-23 16:44 编辑虚拟串口也好其他也罢,用户自己应用程序需要做好数据交互,否则容易卡住得。数据缓冲,我喜欢开数组来接收USB Host发出的包,然后主循环查询包个数非0 去处理,毕竟USB FS 一次最大接收字节只有64个,如果上位机一次发超过64个,你下位机软件必须要做叠包处理,USB dev会连续接收到叠包,你还要拼包。 所以一定要定义一个私有协议,第一个包内 包含 这次传输的性质 到底是64字节内 还是超过64字节~ 你先把主频降低下来,跟STM32那个一样先吧。 大部分项目都没必要跑满MCU主频,容易力竭而亡~ 是的USB是不稳定,之前发过帖子,被木一川给删除了 本帖最后由 lvben5d 于 2022-8-23 16:29 编辑
fuquan19801117 发表于 2022-7-23 09:03
是的USB是不稳定,之前发过帖子,被木一川给删除了
移植好 AT32F425 USB dev了,验证代码 USBdev库 运行稳定。 上位机用的QT开发libusb dll AT32F413和F425的USB都很稳定,如果不稳定是自己程序的问题
页:
[1]
2