如何以编程方式读取 STM32 的特定 CPU 类型?
How can I programatically read the specific CPU type of an STM32?
基于 the documentation 我很确定这个问题的答案是 "You can't.",但无论如何都值得一问。在 STM32 处理器上,有什么方法可以确定软件中的特定 CPU 类型? (即,我想知道我的代码是 运行 在 STM32F407x、STM32F417x 还是 STM32F437x 上)
您要查找的信息在 DBGMCU_IDCODE
寄存器中。您可以从那里判断您是 407 还是 437,但我认为您无法判断您是 407 还是 417。
您可以尝试写入加密单元,看看它是否能区分 407 和 417,但我不知道它是否可靠。
有一个 HAL 库可以帮助你走得更远:
- https://stm32f4-discovery.net/2015/09/hal-library-27-identification-for-stm32fxxx/
- http://stm32f4-discovery.net/hal_api/group___t_m___i_d.html
如果您的特定设备不在保障范围内,您或许可以延长这些时间。它可能使用与 Colin 的答案相同的寄存器作为起点。
基于 the documentation 我很确定这个问题的答案是 "You can't.",但无论如何都值得一问。在 STM32 处理器上,有什么方法可以确定软件中的特定 CPU 类型? (即,我想知道我的代码是 运行 在 STM32F407x、STM32F417x 还是 STM32F437x 上)
您要查找的信息在 DBGMCU_IDCODE
寄存器中。您可以从那里判断您是 407 还是 437,但我认为您无法判断您是 407 还是 417。
您可以尝试写入加密单元,看看它是否能区分 407 和 417,但我不知道它是否可靠。
有一个 HAL 库可以帮助你走得更远:
- https://stm32f4-discovery.net/2015/09/hal-library-27-identification-for-stm32fxxx/
- http://stm32f4-discovery.net/hal_api/group___t_m___i_d.html
如果您的特定设备不在保障范围内,您或许可以延长这些时间。它可能使用与 Colin 的答案相同的寄存器作为起点。