产品唯一的身份标识非常适合:
● 用来作为序列号(例如USB字符序列号或者其他的终端应用)
● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。
● 用来激活带安全机制的自举过程
96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。
这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。
基地址:0x1FFF F7E8
每个CPU 出厂的时候都
配置的一个ID,96 位的.这个唯一码可以利用作软件加密.......
static u32 CpuID[3];
static u32 Lock_Code;
void GetLockCode(void)
{
//获取CPU唯一ID
CpuID[0]=*(vu32*)(0x1ffff7e8);
CpuID[1]=*(vu32*)(0x1ffff7ec);
CpuID[2]=*(vu32*)(0x1ffff7f0);
//加密算法,很简单的加密算法
Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
}
然后再用上次所用的 FLASH_ProgramWord(LOCK_ADDR,Lock_Code); 写到FLASH 的某个角落就好了,然后再在程序中验证这个值是否正确。感觉ID的调取很是方便倒是加密算法让人头痛,当然了要是把MD5移植过来应该不是太难。现在市场中这么多的廉价J-link还不是中国牛人xxx.
关键字:stm32 ID编码
引用地址:
stm32的唯一ID编码
推荐阅读最新更新时间:2024-03-16 15:13
STM32学习笔记——实时时钟RTC
//通过该例程,学会RTC的配置和读取计数值,数值格式的转换的方法 ,要想控制好的话,要多看资料,多看程序 #include stm32f10x_lib.h vu32 TimeDisplay = 0; ErrorStatus HSEStartUpStatus; u32 THH = 0, TMM = 0, TSS = 0; unsigned int jj = 0; unsigned int LedNumVal = 0 ,LedNumVal1 = 0; //变量定义 //此表为 LED 的字模, 共阴数码管 0-9 - unsigned char D
[单片机]
STM32中断及NVIC概述
参考资料《STM32F4xx 中文参考手册》第十章-中断和事件、《 ARM Cortex™-M4F 技术参考手册》-4.3 章节:NVIC 和 4.4章节:SCB—4.4.5的 AIRCR。 对51单片机有一定了解的都知道51单片机有5个中断源,2个优先级,通过对IP这个寄存器赋值来进行中断优先级的处理而STM32的中断非常强大,每个外设都可以产生中断,那么STM32如何进行中断优先级的分配呢,这时就用到了NVIC(嵌套向量中断控制器), 支持为数众多的系统异常和外部中断。 下表即为STM32F42系列的中断向量表(了解即可),即中断类型 灰色部分即为内核的系统异常,灰色以外的其他部分即为片上
[单片机]
STM32入门开发:编写XPT2046电阻触摸屏驱动(模拟SPI)
一、环境介绍 单片机采用: STM32F103ZET6 编程软件: keil5 编程语言: C语言 编程风格: 寄存器开发. 目标芯片: XPT2046---标准SPI接口时序 二、XPT2046芯片介绍 2.1 功能 XPT2046是一颗12位的ADC芯片,可以当做普通的ADC芯片使用,但是一般都是用在电阻触摸屏上,方便定位触摸屏坐标。 图1: XPT2046内部原理图 图2:电阻触摸屏---引出的4条线就接在XPT2046的YNXNYPXP上 (XPT2046支持笔中断输出--低电平有效,这个引脚可以配置到单片机的中断脚上,或者轮询判断这个引脚状态,判断触摸屏是否已经按下) 可以单独买一个触
[单片机]
STM32固件库V3.5在Keil MDK环境下使用方法
简介 写这篇教程主要是和大家分享使用STM32的基本方法,也是给自己学习过程的总结、记录和备忘,避免重复学习之前明白但又忘记的知识和操作。我现在也是刚开始接触学习STM32,我是在STM32的固件库V3基础上进行学习。在这里我和大家分享一下使用V3.x库的方法,希望大家喜欢,如有错误请指出。 这篇教程分以下几个方面,一:建立工程,设置工程属性。二:建立条理清晰的GROUP;三:使用JLINK仿真调试。下面就分别逐个说明。 一、新建MDK工程 1、首先,打开MDK软件,再点击Project- New uVision Project ,如下图所示: 弹出如下对话框: 新建一个文件夹MDK工
[单片机]
STM32自带GB2312字库显示汉字
本文介绍如何把字库文件写入单片机的flash中,然后无需再提取字模,即可实现单片机显示中文字符的功能。 下载字库到单片机flash中的指定位置 在上一篇博客中,最后留了一个想法,让单片机自带字库。现在就来实现这个想法。 我把用到的编译过的字符放在这里 我们借助J-Flash软件把bin文件放在单片机flash中的指定位置。 首先要新建工程,然后根据自己的板子选择型号 然后打开数据文件,找到刚刚下载的bin文件 根据自己单片机的flash大小输入地址,注意这个地址要与代码中的“基地址”一致 设置好以后按下快捷键F7 成功烧录以后,代码不可以在使用此区域。——一般情况下,你的
[单片机]
关于STM32开发工具之STM Studio调试和诊断工具讲解
STM Studio这个工具出来很久了,可能很多人都没听说过。之前没写过,今天就写点关于STM Studio的内容。 1写在前面 针对 STM32 软件的开发工具有很多,从开篇图片也能看到,不知大家用过其中哪些工具? STM32软件开发工具地址: https://www.st.com/en/development-tools/stm32-software-development-tools.html 本文就重点讲述其中的一个工具:STM Studio. 2关于STM Studio STM Studio是通过实时读取和显示变量来帮助调试和诊断STM32应用程序。 STM Studio在PC上运行,通过标准的ST-LINK开发
[单片机]
基于stm32的固定式二氧化碳温湿度变送器设计方案
固定式二氧化碳温湿度变送器设计方案采用STM32F030C8T6单片机采集森尔S8二氧化碳传感器和SHT20数字温湿度传感器的数据,对应输出4-20mA信号和RS485数字信号,RS485通讯采用标准的Modbus RTU通讯协议,通过03功能码读取二氧化碳 温度 湿度数据,外壳采用IP68防水外壳。
[单片机]
如何有效地使用串口通讯接收数据
引言 在使用stm32或者其他单片机的时候,会经常使用到串口通讯,那么如何有效地接收数据呢?假如这段数据是不定长的有如何高效接收呢? 同学A:数据来了就会进入串口中断,在中断中读取数据就行了! 中断就是打断程序正常运行,怎么能保证高效呢?经常把主程序打断,主程序还要不要运行了? 同学B:串口可以配置成用DMA的方式接收数据,等接收完毕就可以去读取了! 这个同学是对的,我们可以使用DMA去接收数据,不过DMA需要定长才能产生接收中断,如何接收不定长的数据呢? DMA简介 题外话:其实,上面的问题是很有必要思考一下的,不断思考,才能进步。 什么是DMA DMA :全称Direct Memory Access,即直接存储器访问
[单片机]