STM32-对芯片启动读保护,实现加密(详解)

发布者:钱老李最新更新时间:2020-07-07 来源: eefocus关键字:STM32  读保护  加密 手机看文章 扫描二维码
随时随地手机看文章

启动读保护后,用户就不能再读写程序了.


所以,在烧写程序之前,需要程序调用关闭读保护.关闭读保护后,会自动清空flash上的程序

 

头文件位于:#include "stm32f10x_flash.h"


启动保护,用在main()函数初始化时调用:


void Set_Protect(void) //启动保护

{

   if(FLASH_GetReadOutProtectionStatus() != SET)

  { 

    FLASH_Unlock(); //解锁  

    FLASH_ReadOutProtection(ENABLE);

    FLASH_Lock();//上锁 

  } 

}


注意:


当代码第一次调用Set_Protect()函数启动读保护时。


期间不能再次调用Off_Protect()函数关闭读保护,需要重新断电才能关闭读保护(因为Flash状态启动读保护后,不能立即设置Status=1)


关闭读保护,在串口接收某个有效数据或按下某个按键时,调用:


void Off_Protect(void) //关闭保护

  if(FLASH_GetReadOutProtectionStatus() != RESET)

  {

    FLASH_Unlock(); //不解锁FALSH也可设置读保护 

    FLASH_ReadOutProtection(DISABLE);

    FLASH_Lock();//上锁 

  } 

}


运行测试


1.第一步,下载程序

2.下载成功后,再次烧写程序,校验是否启动读保护(因为启动读保护后,不能进行读写程序了)

3.通过ST-LINK Utility工具尝试连接芯片,发现确实不能读数据了

然后只要代码调用Off_Protect()函数,便可以取消保护了

关键字:STM32  读保护  加密 引用地址:STM32-对芯片启动读保护,实现加密(详解)

上一篇:STM32-正弦波可调(50HZ~20KHZ可调、峰峰值0~3.3V可调)
下一篇:STM32-嵌入式学习笔记02-中断应用概述

推荐阅读最新更新时间:2024-11-09 13:50

STM32基础3--GPIO控制(LED&KEY)
在SMT2基础1,生成文件后。其实就可以调用HAL库中的 stm32f4xx_hal_gpio.h 的GPIO控制函数,对GPIO进行操控了。 HAL_GPIO_ReadPin 该函数,对引脚的电平的读取,也就是输入电平,返回值是电平的状态。GPIO_PIN_RESET 为低电平,GPIO_PIN_SET为高电平。 typedef enum { GPIO_PIN_RESET = 0, GPIO_PIN_SET }GPIO_PinState; 函数第1个形参是GPIO的分组,填入GPIO组的基地址即可 #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) #define
[单片机]
<font color='red'>STM32</font>基础3--GPIO控制(LED&KEY)
STM32外部晶振电的主时钟方案
STM32的时钟源 STM32F103有两种主时钟方案,一个是依靠内部RC振荡器的HSI(内部高速时钟),另一个是HSE(外部高速时钟)。 内部高速时钟源(HSI) 看数据手册,内部的HSI是由ST出厂时校准过的,但是精度并不高,在0到70℃下误差范围达到 -1.3%到2%,即便是在标准的25℃下,也有 -1.1%到1.8% 的误差(如下图)。 对于高波特率的异步串口通讯,或者需要高精度定时的场合(如:需要跑积分算法的时候),用HSI就有隐患,甚至根本达不到设计要求。 外部高速时钟源(HSE) 为了更高的时钟精度,就要用HSE做主时钟源,起码做到30ppm还是很容易的。无源晶振相对便宜一些,要求不是非常高的话也足够了。 对
[单片机]
<font color='red'>STM32</font>外部晶振电的主时钟方案
MathWorks专访:如何用STM32设计出超越AI的智能应用
业界应如何看待边缘人工智能?ST授权合作伙伴 MathWorks 公司的合作伙伴团队与ST 共同讨论了对边缘机器学习的看法,并与 STM32 社区分享了他们的设计经验。 MathWorks的 MATLAB® 和 Simulink® 软件闻名业界。MATLAB®软件工具可让科学家分析数据,开发算法,创建模型;Simulink®软件可以创建模型化设计,仿真测试动态系统,支持 STM32 MCU,开发、部署和优化在 STM32 MCU上运行的应用。MathWorks 为开发者提供MCU AI开发部署工具,业务范围涵盖许多领域,包括控制设计、信号处理和嵌入式系统设计,以及许多专用附加产品。公司不仅在学术界享有盛誉,在航空航天、
[单片机]
MathWorks专访:如何用<font color='red'>STM32</font>设计出超越AI的智能应用
STM32单片机的串口通信波特率计算方法
1. 什么是波特率 不管是什么单片机,在使用串口通信的时候,有一个非常重要的参数:波特率。什么是波特率:波特率就是每秒传送的字节数。双方在传输数据的过程中,波特率一致,这是通讯成功的基本保障。下面以STM32单片机为例,讲解一下串口波特率的计算方法。 2. STM32波特率相关的寄存器 STM32单片机设置波特率的寄存器只有一个:USART_BRR寄存器,如下图所示。 该寄存器的有效位数为16位,前4位用于存放小数部分,后12位用于存放整数部分。将波特率算出来后,数值填入这个波特率就可以了。下面介绍如何计算。 3. 波特率计算方法 STM32的数据手册给出了计算方法,有一个公式,如下图所示: 在这个公式上,共有三个变量
[单片机]
<font color='red'>STM32</font>单片机的串口通信波特率计算方法
毕业设计| STM32智能婴儿床监控
婴儿床监测主要有以下功能: 床内温度;检测婴儿状态;配置RTC实时时间;电机PWM按键三档调速;自动开关加热器;发送温度到手机终端;把所有要呈现的状态通过OLED屏幕显示。 感兴趣的小伙伴还可以加入更多的功能。 # 硬件元件清单 # 主控为STM32F103C8T6,使用最小系统板: OLED显示屏1个,连接方式:VCC-3.3/5V;GND-GND;SCL-单片机SCL脚;SDA-单片机SDA脚 轻触按键3个,连接方式:对脚连接;一脚接GND;一脚接上拉电阻至电源、及IO口引脚 一路5v继电器模块 1个,连接方式:上面口:VCC-5V;GND-GND;PIN-单片机信号脚下面口:选择常开/常闭连接负载 L298N电机驱
[单片机]
毕业设计| <font color='red'>STM32</font>智能婴儿床监控
STM32晶振器振问题
   STM32的RTC晶振经常出现不起振的问题,这已经是“业界共识”了。很多人在各种电子论坛上求助类似于“求高手指点!RTC晶振不起振怎么办”的问题,而其答案基本可以概括为“这次高手帮不了你了”   更有阴谋论者提出让人啼笑皆非的解释——STM32的RTC晶振不起振是ST与晶振厂商串通后故意搞出来的,目的是提高某晶振厂商高端晶振的销量。   最近做的几块板子也用到了STM32的RTC,前后两版一共做了大概6片,幸运的是并未遇到晶振不起振的现象。而我采用的是3毛钱一个的普通晶振,并未选用传说中低负载高精度晶振。后来在另外一片实验性质的板子上首次遇到了晶振不起振的问题,而且做了2片都不起振,这才让我意识到这个问题的严重性。
[单片机]
stm32读取电压HAL库版本
/* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ uint16_t adc_value = 0; double voltage = 0.0; char voltString = {0}; /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); /*
[单片机]
<font color='red'>stm32</font>读取电压HAL库版本
STM32芯片UID话题
绝大多数STM32系列的芯片都在固定的地方放置了长度为96位的唯一身份识别码,简称UID,只有极少数STM32系列芯片内部没有该UID,比方超值型STM32F0x0系列,STM32F100系列。具体到哪颗芯片到底有没有UID,在芯片数据手册的首页都有明确的说明,无需猜测。如下图所以: 芯片所对应的参考手册里,有对该UID存放地址的详细介绍。地址因不同系列或子序列而不同。 关于这个UID常有人有些疑问,有几个问题在这里稍微总结下: 1、有无问题。上面说了绝大部分STM32都内置UID,具体以查看数据手册为准。 2、唯一性问题。该UID的唯一性是靠96位这个整体来保证其唯一性,你若截取部分就不保证了。 3、内容问题。有人对这个
[单片机]
<font color='red'>STM32</font>芯片UID话题
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved