历史上的今天
返回首页

历史上的今天

今天是:2025年01月31日(星期五)

2021年01月31日 | 关于STM32的这几个寄存器,你知道吗?

2021-01-31 来源:eefocus

1Flash容量寄存器

这个问题是之前有人问过,说:我的芯片被抹掉,看不清了,我怎么知道这块芯片容量大小?


解决办法:


1.通过读寄存器

在STM32的“参考手册”中有Flash size data register这么一个寄存器(一般在手册最后),明确写了寄存器的基地址。


提示:不同芯片型号,可能这个寄存器地址不同。比如F103的基地址为:0x1FFFF7E0。

图片


是一个16位的数值,出厂写入,程序只能读取。读取方法很简单,可以如下:

uint16_t Flash_size;

Flash_size = *(uint16_t *)0x1FFFF7E0;


说到这里,可以参看我之前分享的一篇文章《你的STM32芯片FLASH容量真如ST官方选型手册那样吗?》


2.通过STM32 ST-LINK Utility直接读取

通过ST-Link连接芯片,直接读取,可以看到容量信息:


2UID寄存器

之前有人问我,可以通过STM32的UID来加密吗? 这个肯定是可以的。


但又问了我一个问题,我不希望读取全部(96位),可以只读取部分寄存器来作为标识吗?读取的部分会不会重复?


STM32的UID唯一标识符适用于:

  • 用来作为序列号。

  • 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。

  • 用来激活带安全机制的自举过程。


STM32的UID共有96位(32 x 3)。所有,就有朋友,我是否可以只读取其中某一部分来作为唯一识别?


这个问题,严格来说,不可以。但如果不是特别严格,还是可以。因为这个UID是通过晶元、分批等来进行编号的。如果你买同一批次,你会发现那个编号可能连续。


图片

图片


我之前曾读取过几块生产的板卡(购买得_MCU是同一批次),芯片的UID是连续的,感兴趣的可以试试。


所以,通过读取部分UID来作为标识,只能说不严格的情况是可以的。


3寄存器偏移地址

现在还有许多初学的朋友在学习底层的一些知识,比如前面就有朋友想自己通过寄存器来编程,但是却不知道什么是寄存器基地址,什么是寄存器偏移地址。



1.基地址

每一个片内外设都有一个对应的基地址,而且是由厂商决定我们不能修改。如下图:


在程序中,你会发现和上面对应的代码:


2.偏移地址

偏移地址就是在基地址基础上偏移(一般是以4字节增加),比如TIM定时器的偏移地址:

图片


同样,在程序中对应的代码通过结构体实现偏移:

图片


关于基地址和偏移地址,不管是标准外设库还是HAL库,都是上面所示那种基地址+偏移的方法实现。


还是之前多次在文章中提到的,想要了解寄存器原理,或者通过寄存器来实现的朋友,最好参考“标准外设库”例程。HAL库封装的相对复杂,不适合研究最底层寄存器。


推荐阅读

史海拾趣

静芯微电子(ElecSuper)公司的发展小趣事

静芯微电子深知产品质量对于企业的重要性,因此建立了完善的质量管理体系。公司从原材料采购、生产制造到产品检测等各个环节都实行严格的质量控制和管理,确保每一款产品都符合高标准的质量要求。同时,静芯微电子还引进了先进的检测设备和技术手段,对产品质量进行全面检测和评估。这些措施保证了静芯微电子产品的稳定性和可靠性,赢得了客户的信任和好评。

DLG Hanbit公司的发展小趣事

面对数字化转型的浪潮,DLG Hanbit公司积极拥抱变革。公司加大了对云计算、大数据、人工智能等技术的研发投入,推出了一系列智能电子产品和解决方案。同时,公司还加强了与互联网企业、电信运营商等合作伙伴的合作,共同打造智能生态圈。未来,DLG Hanbit公司将继续秉承创新、品质、环保的理念,致力于成为全球领先的半导体设计和制造企业。

Comax Industrial Co Ltd公司的发展小趣事

为了不断提升自身的技术创新能力,Comax Industrial Co Ltd公司积极与高校、科研机构等开展产学研合作。通过与这些机构的紧密合作,公司不仅获得了前沿的技术支持,还培养了一批高素质的技术人才。这种合作模式使得公司的技术创新能力得到了显著提升,为公司的长期发展提供了有力的支撑。

Continental Industries公司的发展小趣事

在电子行业的初期,Continental Industries凭借其深厚的技术积累,成功研发出了一款固态继电器。这款继电器以其高度可靠性、长寿命和减少电磁干扰的特性,迅速在市场中占据了重要地位。公司不断投入研发资源,优化产品性能,逐渐在工业自动化和建筑环境控制领域树立起了技术领先的形象。

Greenlee公司的发展小趣事

为了进一步扩大市场份额,GREEGOO公司积极实施全球化战略。公司首先在欧洲市场设立了分支机构,通过参加国际展会、建立销售渠道等方式,成功打入欧洲市场。随后,GREEGOO又陆续在北美、亚洲等地设立分支机构,形成了覆盖全球的营销网络。在全球化布局的过程中,GREEGOO不仅注重产品的本地化适应和品牌建设,还积极与当地企业开展合作,共同开拓新市场。

Excel-Display Corporation公司的发展小趣事

随着市场竞争的加剧,EDC意识到只有不断创新才能在行业中立于不败之地。因此,公司加大了对新技术、新产品的研发投入。

经过数年的努力,EDC成功研发出了一种新型的显示技术,该技术在色彩还原、对比度等方面都达到了行业领先水平。这一技术的推出,不仅让EDC的产品在市场上获得了更高的认可度,也引领了整个行业的发展潮流。

问答坊 | AI 解惑

Arm—DSP—FPGA的比较

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软 件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处 ...…

查看全部问答>

最近我想做个血糖仪不知道哪位大侠做过呢?

最近我想做个血糖仪不知道哪位大侠做过呢?…

查看全部问答>

跟我学模拟电路

这是一本入门经典教材…

查看全部问答>

MC34063廉价的DC/DC变换器

DC/DC变换器控制电路                            34063是一单片双极型线性集成电路 专用于直流直流变换器控制部分 片内包含有温度补偿带隙基准源一 ...…

查看全部问答>

VxWorks中的select问题(谁有使用select来收发Tcp或Udp数据)

while(true){     assert(errno==0);//这里取错误号等于0     int ret=select(nfds+1,&readFs,NULL,NULL,&timeOut);     if( ret>0 ){         assert(errno==0x3d0002);//这里必然 ...…

查看全部问答>

最超值的NRF905-CC11000-红外线综合开发板JASK2000

最超值的NRF905-CC11000-红外线综合开发板JASK2000 JASK2000开发系统     集成当前433频段最主流无线收IC :NRF905 ,CC1100及红外收发器,相信掌握这3款无线收发器原理及应用对大家在无线应用开发领域奠定扎实基础.我公司提供全面技术支 ...…

查看全部问答>

北京哪有卖非接触式ic卡读卡器的?

北京哪有卖非接触式ic卡读卡器的? 我是大学生,只要买一个便宜的用作项目研究。 谢谢大家了…

查看全部问答>

请问通过超级终端发送AT命令发短信的问题

请问一下,我用W880I在UDP模式下发短信(不支持TEXT模式),输入了AT+CMGS之后,在提示符下输入了类似下面的信息: at+cmgs=21 > 089168XXXXXXXXXXXX11000D91683118405057F000000006C8329BFD0E01  X部分为我的手机号码+F,经过两两对换的 但 ...…

查看全部问答>

PCI9054

谁能介绍以下PCI9054的情况!它是不是有自己的上层软件的接口函数什么的?如何进行VC++的总线编程?谢谢!…

查看全部问答>

请教一个关于Tornado Target Server的问题

在启动一个Target 的时候出现这样一个错误“not enough memory to store the object file” 提示没有足够的内存存储这么大的符号表文件,把memory cache 设置的很大也没有用。 这个不知道有没有人遇到过,不知道是如何解决的?…

查看全部问答>