STM32F1xx系列单片机通过程序获取MCU信息 | 您所在的位置:网站首页 › 如何查看macbook芯片型号 › STM32F1xx系列单片机通过程序获取MCU信息 |
在使用STM32F1xx系列单片机时可以直接在指定地址中读取单片机相关信息,在参考手册上的相关介绍如下。
通过上面的介绍可以看到,直接去这些指定地址中读取数据,就可以获取到MCU的相关信息。下来就直接通过代码去获取这些信息。 #include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" u32 flash_id[4]; u16 flash_size; u32 mcu_id; int main( void ) { while( 1 ) { flash_size = *( unsigned int * )( 0x1FFFF7E0 ); //闪存容量 flash_id[0] = *( unsigned int * )( 0x1FFFF7E8 + 0x00 ); //ID 0-31 flash_id[1] = *( unsigned int * )( 0x1FFFF7E8 + 0x04 ); //ID 32-63 flash_id[2] = *( unsigned int * )( 0x1FFFF7E8 + 0x08 ); //ID 64-95 mcu_id = *( unsigned int * )( 0xE0042000 ); //MCU ID } }通过指针,直接在地址中去读取数据,通过单步调试,观察读取到的值,和单片机内存中的值是否一致。 通过观察中的变量值和单片机内存中的值对比,可以看出,读出的数据和内存中数据一致。 读出单片机的内存大小为0x0040,换算为10进制数为64。通过上面的闪存容量寄存器的介绍可以知道,闪存容量是以K为单位的,说明当前单片机的容量为64K,测试用的单片机型号为STM32F103C8T6,容量正好是64K。说明读取的数据和实际情况是一致的。 读出的96bit的设备 ID号和内存中的内容也一样,说明已经正确的获取到了设备的 ID编号。 通过mcu_id的值0x20036410可以看出,芯片的版本为0x2003,是中等容量产品,版本为 Y。它的设备编码为410。 |
CopyRight 2018-2019 实验室设备网 版权所有 |