STM32U585 使用STM32CubeMX配置USB的问题
[复制链接]
这次评测没什么成果几乎都是在提问题,这不问题又来了。明天板子就要寄回想着再玩点什么,看到官方软件包里没提供USB的例程,准备用STM32CubeMX分分钟弄出个USB Device来和电脑通信,
以往的STM32型号使用STM32CubeMX在Conncetivity里配置好Device后Middleware里就会有出现。
然后选择Class For FS IP里的Virtual Port Com就能实现USB转串口的功能。
但是U585这个型号很不一样,在选好Device后Middleware里并没有对应的USB DEVICE可以配置。
USBX里边的选项也都是灰色无法选择。
摸索了一段时间没找到解决办法,百度也没找到结果。
但是,但是什么问题都难不倒一个会使用谷歌的人,就在边发帖子吐槽边不放弃的搜索结果时,我发现了这个网址。
https://wiki.st.com/stm32mcu/wiki/USBX_overview
也就是说,现在使用USBX必需使用ThreadX,果盐,在我使能ThreadX后,USBX可以配置了。
不过高兴的有点早,GENERATE CODE时进度条卡住不动了。
上次STM32CubeMX卡死时没找到对应的进程,后来发现结束OpenJDK....就可以退出卡死的STM32CubeMX。
结束STM32CubeMX应用程序后重新打开.ioc文件发现原来的配置都已经保存了,然后再次GENERATE CODE。还是卡在Copying libraries files...,CPU没啥变化,硬盘没啥读写,网络也没啥动静。它在等什么?
去掉ThreadX后GENERATE CODE可以顺利完成。
再次勾选ThreadX和USBX后GENERATE CODE,竟然好用了,不过除了上边的操作我还把项目的文件夹复制到E盘的根目录下,去掉了原来的文件加密,不确定问题出在哪里。
终于成功生成了对应的工程,不过通过https://wiki.st.com/stm32mcu/wiki/USBX_overview文档可以看出来,如果把它下载到STM32U585里接上USB-C连线电脑的设备管理器是不会出现新设备的,为什么我这么清楚?因为我试了。
看到手册里有一个ux_system_initialize ( pointer , USBX_MEMORY_SIZE , UX_NULL , 0 );函数,我没弄过ThreadX不清楚这里的pointer是哪里来的,通过谷歌搜索"ux_system_initialize site:github.com"找到了一个对应的文件https://github.com/azure-rtos/usbx/blob/master/samples/demo_usbx.c简单看了一下,我还是决定放弃了。因为我感觉在我今天睡觉前应该是调不出来。明天板子就要回上海 ,今晚别熬夜了,让它睡个好觉。
什么?有USB驱动?不死心准备去软件包里翻ThreadX,居然发现有USB的驱动,STM32Cube\Repository\STM32Cube_FW_U5_V1.0.0\Projects\B-U585I-IOT02A\Applications\USBX\Ux_Device_HID_CDC_ACM,打开工程运行后电脑出现了虚拟串口,然后我看了一下工程里的代码,没找到发送数据的函数。
而且刚才我上传图片时已经提示网络错误,查看帖子和回其它帖子正常,我感觉我花这么长时间写的帖子要挂,其它真的挂了,那个帖子已经不能发送,我又重新开了一个帖子恢复数据,但是很多图片都没有了。
|