Embedded STM32F042是否不需要更高级别的库?

Embedded STM32F042是否不需要更高级别的库?,embedded,usb,stm32,Embedded,Usb,Stm32,我使用STM32F30x系列已经有一段时间了,我已经习惯了类似这样的文件系统: inc/ ---*.h lib/ ---CMSIS/ ---STM32F30x_StdPeriph_Driver/ ------inc/ ------scr/ ---STM32_USB-FS-Device-Driver/ ------inc/ ------scr/ src/ ---*.c usb/ ---inc/ ------ hw_config.h ------ *.h ---scr/ ------ hw_conf

我使用STM32F30x系列已经有一段时间了,我已经习惯了类似这样的文件系统:

inc/
---*.h
lib/
---CMSIS/
---STM32F30x_StdPeriph_Driver/
------inc/
------scr/
---STM32_USB-FS-Device-Driver/
------inc/
------scr/
src/
---*.c
usb/
---inc/
------ hw_config.h
------ *.h
---scr/
------ hw_config.c
------ *.c
inc/
---*.h
lib/
---CMSIS/
---STM32F0xx_StdPeriph_Driver/
---STM32_USB-Device-Driver/
------inc/
------scr/
---STM32_USB-Device-Library/
------Class/
------Core/
src/
---*.c
现在我切换到使用STM32F042,我完全找不到带有hw_配置和usb文件的usb库,因此我的设置如下:

inc/
---*.h
lib/
---CMSIS/
---STM32F30x_StdPeriph_Driver/
------inc/
------scr/
---STM32_USB-FS-Device-Driver/
------inc/
------scr/
src/
---*.c
usb/
---inc/
------ hw_config.h
------ *.h
---scr/
------ hw_config.c
------ *.c
inc/
---*.h
lib/
---CMSIS/
---STM32F0xx_StdPeriph_Driver/
---STM32_USB-Device-Driver/
------inc/
------scr/
---STM32_USB-Device-Library/
------Class/
------Core/
src/
---*.c

我一直认为这些usb/库是使用usb外设所必需的。STM32F042系列不再如此吗?或者我是否需要弄清楚如何编写这些文件的自己版本?我还没有找到任何使用USB的STM32F042的工作示例,所以我有点不知所措。

相反;ST想让你用他们的

但是,您查找但找不到的库显然可用于该零件。向下滚动至嵌入式软件下载部分,或在页面中搜索“STM32F0x2xx USB FS设备库(UM1717)”或使用直接链接。它包括一些例子


然而,ST确实希望您从他们的遗留软件支持迁移到。就个人而言,我不喜欢STM32Cube(甚至比我不喜欢SPL和USB库还要多),原因有很多。不幸的是,ST不愿意解决遗留支持中的错误,根据我的经验,他们的大多数错误都存在于USB代码中,比大多数其他外围设备复杂得多,但与将所有内容迁移到Cube并将自己永远锁定在ST中相比,他们更容易集成到现有的软件设计中(毫无疑问,这是他们的目标).

我对这些库没有用处,所以我对它们不太了解。正如你所知,这个部分确实包含一个usb接口。它们在不同的家庭中重复使用相同的外围设备并不少见。并非总是从以前的家庭中完美地借用。有时,a的时钟/锁相环与B的计时器和UART混合在一起。因此,首先当然是y你应该要求ST不要这样做。第二,看看你的两个部件的数据表,看看usb外设寄存器规格是否非常相似,如果不相似,看看是否有另一个stm32设备具有库支持和匹配寄存器,并借用该代码。如果你习惯使用这些库,usb外设是你最不想使用的你自己使用自己的驱动程序。毫无疑问,有开源或其他库支持此外设的实例化。ST不太可能没有对它的库支持。SPL已经死了很多年,STM不支持它。改用HAL。USB和以太网编程相当困难peripherals@PeterJ_01字体他正在寻找的页面确实将STM32Cube作为替代方案推广,但明确指出“ST继续支持此页面上的软件…”,因此不支持该页面(尽管支持可能仅限于继续提供,但这就是他所要求的)。我不能谈论USB方面,但STM32F3xx和STM32F0xx是显著不同的设备,因此旧的标准外设库在这方面可能有很大的不同。这些库将提供您所需要的。(当然,您可以在寄存器级别使用CMSI,但USB很复杂。)也就是说,STM32CubeMX中包含的较新的HAL库应该可以增加STM32产品线中API的通用性,尽管它们仍然不相同。