STM32/GD32芯片信息

简介: 因为需要自动适配芯片进行系统配置,所以我们有必要通过读取一些系统寄存器来获取必要信息。我们的代码需要兼容STM32F1/GD32F1/STM32F0/STM32F4代码如下: #ifdef STM32F0XX void* p = (void*)0x1FFFF7AC; #el...

因为需要自动适配芯片进行系统配置,所以我们有必要通过读取一些系统寄存器来获取必要信息。
我们的代码需要兼容STM32F1/GD32F1/STM32F0/STM32F4

代码如下:

#ifdef STM32F0XX
        void* p = (void*)0x1FFFF7AC;
#else
        void* p = (void*)0x1FFFF7E8;
#endif
        memcpy(ID, p, ArrayLength(ID));

    CPUID = SCB->CPUID;
    uint MCUID = DBGMCU->IDCODE; // MCU编码。低字设备版本,高字子版本
        RevID = MCUID >> 16;
        DevID = MCUID & 0x0FFF;

        _Index = 0;
#ifdef STM32F0XX
    FlashSize = *(__IO ushort *)(0x1FFFF7CC);  // 容量
#else
    FlashSize = *(__IO ushort *)(0x1FFFF7E0);  // 容量
#endif

各常见芯片信息如下:
STM32F030C8T6

SmartOS STM32F030C8 48MHz Flash:64k RAM:8k
DevID:0x0440 RevID:0x2000 
CPUID:0x410CC200 ARM ARMv6-M Cortex-M0 R0p0
ChipID:55-00-3E-00-04-57-32-4D-39-35-34-20
Heap :(0x200009a0, 0x200011a0) = 0x800
Stack:(0x200011a0, 0x20002000) = 0xe60

GD32F130C8T6

SmartOS GD32F130C8 48MHz Flash:64k RAM:8k
DevID:0x0410 RevID:0x1303 
CPUID:0x412FC231 ARM ARMv7-M Cortex-M3 R1p2
ChipID:26-49-31-39-31-33-30-32-32-32-33-32 &I1913022232
Heap :(0x200009a0, 0x200011a0) = 0x800
Stack:(0x200011a0, 0x20002000) = 0xe60

STM32F051C8T6

SmartOS STM32F030C8 48MHz Flash:64k RAM:8k
DevID:0x0440 RevID:0x2000 
CPUID:0x410CC200 ARM ARMv6-M Cortex-M0 R0p0
ChipID:22-00-21-00-11-57-36-41-36-33-32-20
Heap :(0x200009a0, 0x200011a0) = 0x800
Stack:(0x200011a0, 0x20002000) = 0xe60

GD32F150C8T6

SmartOS GD32F150C8 72MHz Flash:64k RAM:8k
DevID:0x0410 RevID:0x1303 
CPUID:0x412FC231 ARM ARMv7-M Cortex-M3 R1p2
ChipID:8F-14-31-39-31-33-30-32-32-32-33-32    8F141913022232
Heap :(0x20000678, 0x20000e78) = 0x800 (2k)
Stack:(0x20000e78, 0x20002000) = 0x1188 (4k)

STM32F103VET6

SmartOS STM32F103VE 72MHz Flash:512k RAM:64k
DevID:0x0414 RevID:0x1001 
CPUID:0x411FC231 ARM ARMv7-M Cortex-M3 R1p1
ChipID:38-FF-D4-FB-31-4E-36-30-36-66-01-43
Heap :(0x20000a30, 0x20004a30) = 0x4000
Stack:(0x20004a30, 0x20010000) = 0xb5d0

GD32F103VET6

SmartOS GD32F103VE 120MHz Flash:512k RAM:64k
DevID:0x0414 RevID:0x1309 
CPUID:0x412FC231 ARM ARMv7-M Cortex-M3 R1p2
ChipID:46-86-31-36-38-37-30-31-01-02-03-04 F�168701
我不相信神话,我只相信汗水!我不相信命运,我只相信双手!
相关文章
15 玩转STM32之IIC通信(芯片硬件篇)(下)
15 玩转STM32之IIC通信(芯片硬件篇)
15 玩转STM32之IIC通信(芯片硬件篇)(上)
15 玩转STM32之IIC通信(芯片硬件篇)
|
传感器 芯片 内存技术
STM32与测温芯片ADT7410通过模拟IIC通信
STM32与测温芯片ADT7410通过模拟IIC通信
STM32与测温芯片ADT7410通过模拟IIC通信
|
芯片
STM32F103ZE和STM32F207ZG的芯片区别
STM32F103ZE和STM32F207ZG的芯片区别(特别是寄存器区别)
758 0
|
芯片
《STM32库开发实战指南:基于STM32F4》----1.4 安装STM32芯片包
本节书摘来自华章出版社《STM32库开发实战指南:基于STM32F4》一书中的第1章,第1.4节,作者刘火良,杨森编著,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.4 安装STM32芯片包 KEIL5不像KEIL4那样自带了很多厂商的MCU型号,而是需要自己安装。
4929 0
|
芯片 .NET 开发框架
stm32之595(spi芯片)
  595是一款串转并的芯片;  (三极管的功能) 1 /*Include---------------------------*/ 2 #include"stm32f10x_lib.h" //包含所有的头文件 3 #include 4 5 //--...
1240 0
|
5月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
444 2
|
4月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
714 0
|
5月前
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
509 4