首先声明,手册上给出的FlashSize地址是错误的,正确的应该是0x1FFF7A20,取高16位。确切说应该是(0x1FFF7A23,0x1FFF7A22两个字节),

芯片的这96位ID是产品唯一身份标识。可以从特定的寄存器中读出来。FlashSize表示内部flash的大小,也是固化在芯片内部的。

手册上讲的ChipID的基地址是0x1FFF7A10,ChipSize的基地址也是0x1FFF7A10。肯定是不对的

谷歌了半天才发现真正的ChipSize地址0x1FFF7A20。知道了地址,直接读取地址中的数据就OK了。操作相当简单

读取FlashSize

uint16_t cpuGetFlashSize(void)
{

return (*(__IO u16*)(0x1FFF7A22));
   // return (*(__IO u32*)(0x1FFF7A20))>>16;
}

//读取ChipID

void cpuidGetId(void)
{
    mcuID[0] = *(__IO u32*)(0x1FFF7A10);
    mcuID[1] = *(__IO u32*)(0x1FFF7A14);
    mcuID[2] = *(__IO u32*)(0x1FFF7A18);
}

通过串口发送到PC就可以看到了。

串口发送程序;

printf("CPUID IS 0X%X %X %X.\r\n", mcuID[0], mcuID[1], mcuID[2] );  
 
  printf("Flash size is %d KB\r\n",cpuGetFlashSize());

PC接收到的:

为了验证,可以使用STLink Utility对比下:

【STM32F4】读取芯片ID和芯片Flash Size的更多相关文章

  1. Read UNIQUE ID and flash size method for stm32

    /* 读取stm32的unique id 与 flash size */ /* func: unsigned int Read_UniqueID_Byte(unsigned char offset) ...

  2. 玩转X-CTR100 l STM32F4 l W25Q64 SPI串行FLASH存储

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 板载FLA ...

  3. known good die( KGD) /确认好裸芯片,合格芯片

    英文:known good die( KGD) / 中文:确认好裸芯片,合格芯片 完工的晶圆上有许多晶片存在,其单一品质有好有坏,经过老化试验后,其确知电性能良好的晶片即称为己知好晶片.不过,已知好晶 ...

  4. MPU6050可以读取器件ID值,但读出的加速度计和陀螺仪的数据均为零

    今天在调试MPU6050时发现,MPU6050可以正常读取器件ID,但读取的加速度计和陀螺仪的数据均为零. 经过排查发现,MPU6050第20脚的电容没用焊接,C6可以使用10uF的电容.

  5. 减少芯片失效:芯片焊接(die Attach)工艺优化

    在器件的生产过程中,芯片焊接是封装过程中的重点控制工序.此工艺的目的是将芯片通过融化的合金焊料粘结在引线框架上,使芯片的集电极与引线框架的散热片形成良好的欧姆接触和散热通路.由于固体表面的复杂性和粘结 ...

  6. Torch-RNN运行过程中的坑 [1](读取Lua非空table,size为0)

    0.踩坑背景 执行Torch-RNN的时候,在LanguageModel.lua中的encode_string函数中,对start_text的各个character进行id映射编码,实现功能类似“北京 ...

  7. 计算机系统2->从芯片说起 | 芯片怎样诞生

    这部分数字逻辑课上老师在讲CMOS部分时有讲过,当时在课堂上放了一个全英的视频,没怎么看懂,现在在研究计算机系统,自底层说起,也得从这讲起. 主要参考: <嵌入式C语言自我素养> b站相关 ...

  8. CS5265替代CH7211|Capstone CS5265芯片|替代CH7211芯片

    龙迅Chrontel的CH7211是一款Type-C转HDMI2.0半导体设备,可通过USB Type-C连接器将DisplayPort信号转换为HDMI/DVI.这款创新的基于USB Type-C的 ...

  9. Capstone CS5263|DP转HDMI 4K60HZ转换芯片|CS5263芯片|替代PS176芯片

    CS5263是一款DP转HDMI 4K60HZ音视频转换器芯片,不管在功能特性还是应用上都是可以完全替代兼容PS176.PS176是一个Display Port 1.2a到HDMI 2.0协议转换器, ...

随机推荐

  1. js判断是否存在指定变量或函数

    //是否存在指定变量 function isExitsVariable(variableName) { try { if (typeof(eval(variableName)) == "un ...

  2. vi学习 常用命令-新建-复制-剪切-粘贴

    mkdir /home/brandon.du/desktop/mylinux/test_1.txt   ---------mkdir新建文件夹 rm /home/brandon.du/desktop/ ...

  3. HTTP动词

    对于资源的具体操作类型,由HTTP动词表示. 常用的HTTP动词有下面五个(括号里是对应的SQL命令). GET(SELECT):从服务器取出资源(一项或多项). POST(CREATE):在服务器新 ...

  4. SqlServer性能优化 自定义动化性能收集(四)

    配置数据收集器: 1.创建登录名并映射角色 2.配置管理数据仓库 3.创建收集组.收集项----MSDB数据存储   sp_syscollector_create... 4.自动配置相关job 具体步 ...

  5. Java(六)——抽奖系统

     总体思路: 将编号加入ArrayList动态数组中,利用集合的静态方法Collections.shuffle() 乱序集合中的元素从而获得随机数,remove删除已抽编号  代码如下: import ...

  6. (转)JS获取当前对象大小以及屏幕分辨率等

    原文 JS获取当前对象大小以及屏幕分辨率等   <script type="text/javascript">function getInfo(){       var ...

  7. git常见错误

    一.如果输: $ git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git         提示出错信息:fat ...

  8. 修改安卓串口蓝牙app问题记录

    * 在网上下载的安卓的蓝牙串口app都是基于eclipse的,但往as里边导入时都存在问题. 迫不得已最后我使用的办法还是在as下面新建工程,然后把相关文件导入.不过还是遇到了其他的问题. * 某个蓝 ...

  9. JavaScript DOM 编程艺术·setInterval与setTimeout的动画实现解析

    先贴上moveElement()函数的大纲,为了方便观看,删了部分代码,完整版粘到文章后面. function moveElement(elementID,final_x,final_y,interv ...

  10. 关于Java中的基本数据类型转换

    Java中的基本类型有四种,其中整型分为byte.short.int.long,浮点型分为float.double,字符型char,布尔型boolean.8种类型的级别由低到高byte->sho ...