littleshrimp 发表于 2021-10-19 22:00

STM32U585 使用STM32CubeMX配置USB的问题

<p>这次评测没什么成果几乎都是在提问题,这不问题又来了。明天板子就要寄回想着再玩点什么,看到官方软件包里没提供USB的例程,准备用STM32CubeMX分分钟弄出个USB Device来和电脑通信,</p>

<p>以往的STM32型号使用STM32CubeMX在Conncetivity里配置好Device后Middleware里就会有出现。</p>

<p>然后选择Class For FS IP里的Virtual Port Com就能实现USB转串口的功能。</p>

<p>但是U585这个型号很不一样,在选好Device后Middleware里并没有对应的USB DEVICE可以配置。</p>

<p>USBX里边的选项也都是灰色无法选择。</p>

<p> &nbsp;</p>

<p>摸索了一段时间没找到解决办法,百度也没找到结果。</p>

<p>但是,但是什么问题都难不倒一个会使用谷歌的人,就在边发帖子吐槽边不放弃的搜索结果时,我发现了这个网址。</p>

<p>https://wiki.st.com/stm32mcu/wiki/USBX_overview</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>也就是说,现在使用USBX必需使用ThreadX,果盐,在我使能ThreadX后,USBX可以配置了。</p>

<p>不过高兴的有点早,GENERATE CODE时进度条卡住不动了。</p>

<p>上次STM32CubeMX卡死时没找到对应的进程,后来发现结束OpenJDK....就可以退出卡死的STM32CubeMX。</p>

<p>&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;</p>

<p>结束STM32CubeMX应用程序后重新打开.ioc文件发现原来的配置都已经保存了,然后再次GENERATE CODE。还是卡在Copying libraries files...,CPU没啥变化,硬盘没啥读写,网络也没啥动静。它在等什么?</p>

<p>去掉ThreadX后GENERATE CODE可以顺利完成。</p>

<p>再次勾选ThreadX和USBX后GENERATE CODE,竟然好用了,不过除了上边的操作我还把项目的文件夹复制到E盘的根目录下,去掉了原来的文件加密,不确定问题出在哪里。</p>

<p>终于成功生成了对应的工程,不过通过https://wiki.st.com/stm32mcu/wiki/USBX_overview文档可以看出来,如果把它下载到STM32U585里接上USB-C连线电脑的设备管理器是不会出现新设备的,为什么我这么清楚?因为我试了。</p>

<p>看到手册里有一个ux_system_initialize ( pointer , &nbsp;USBX_MEMORY_SIZE , &nbsp;UX_NULL , &nbsp;0 );函数,我没弄过ThreadX不清楚这里的pointer是哪里来的,通过谷歌搜索&quot;ux_system_initialize site:github.com&quot;找到了一个对应的文件https://github.com/azure-rtos/usbx/blob/master/samples/demo_usbx.c简单看了一下,我还是决定放弃了。因为我感觉在我今天睡觉前应该是调不出来。明天板子就要回上海 ,今晚别熬夜了,让它睡个好觉。</p>

<p>&nbsp;</p>

<p>什么?有USB驱动?不死心准备去软件包里翻ThreadX,居然发现有USB的驱动,STM32Cube\Repository\STM32Cube_FW_U5_V1.0.0\Projects\B-U585I-IOT02A\Applications\USBX\Ux_Device_HID_CDC_ACM,打开工程运行后电脑出现了虚拟串口,然后我看了一下工程里的代码,没找到发送数据的函数。</p>

<p></p>

<p>而且刚才我上传图片时已经提示网络错误,查看帖子和回其它帖子正常,我感觉我花这么长时间写的帖子要挂,其它真的挂了,那个帖子已经不能发送,我又重新开了一个帖子恢复数据,但是很多图片都没有了。</p>

<p>&nbsp;</p>
页: [1]
查看完整版本: STM32U585 使用STM32CubeMX配置USB的问题