011_STM32程序移植之_内部flash开机次数管理

1. 测试环境:STM32C8T6

2. 测试接口:

3. 串口使用串口一,波特率9600

单片机引脚------------CH340引脚

VCC--------------------VCC

GND-------------------GND

PA9--------------------RXD

PA10-------------------TXD

1.       功能:

1.       使用STM32内部falsh进行开机次数记录

2.       通过串口输入密码进行权限的设置

3.       设置唯一硬件标识

2.       移植基础

1.   008_STM32之_keil编译内存大小解析

2.   009_STM32程序移植之_内部falsh

3. 010_STM32程序移植之_lib库建立

3.       前面三个是解析,有了基础之后进行移植

4.       四个文件

5.       第一个是普通串口打印文件

6.       第二和第四个是开机管理的

7.       第三个是密码初始化,就是先刷这个程序进去初始化变量

8.       开始移植

9.       确定串口程序能够使用,能够串口打印和接收数据

10.   开始移植

11.   调用函数检测

12.   程序需要修改的地方就这里

13.   程序编译成功之后先不下载这个程序

14.   我们下载密码初始化这里这个程序,进行变量的初始化

15.   下载之后会打印一些都系出来,这个里面有解析

16.   密码初始化完成之后,我们再下载刚才移植的程序

17.   会有数据打印出来,打印的数据是因为我们前面进行了密码初始化

18.   看现象,我们密码初始化玩之后能够就行开机20次

19.   当开机超过20次之后,程序就卡死在这里了,不能往下运行了

20.   我们初始密码是{123456},当前面四个正确后面两个不正确时候获得临时开机权限

例如:{123420}      //获得临时开机权限20次

{123450}     //获得临时开机权限20次

21.   在串口中断那里调用串口密码输入

22.   就算重新下载进去也不能进行程序的运行

23.   继续20点,输入密码{123410} 获得临时权限10次,

24.   复位看效果,当临时权限超过10次之后,再次失效

25.   输入正确密码之后可以获得永久权限

26.   临时权限只能输入一次,再次输入就没有用了

27.   效果现在就是这样了,下面开始制作lib库文件,也就是不能看见C文件的内容

28.

29.  疑惑QQ:3045136580

30.  假如以下视频播放不了,可以到腾讯《STM32移植系列》专辑中查找相对应的

31.  腾讯个人主页:

http://v.qq.com/vplus/ffb274f0adf3a4d4374b388a03b2358f/folders

32.   本视频移植地址:https://v.qq.com/x/page/i07717n3l34.html

33.   资料下载地址:https://download.csdn.net/download/xiaoguoge11/10637124

34.   版权所有,仅供学习参考!

35.

011_STM32程序移植之_内部flash开机次数管理的更多相关文章

  1. 012_STM32程序移植之_内部flash开机次数管理lib库建立

    012_STM32程序移植之_内部flash开机次数管理lib库建立 1. 测试环境:STM32C8T6 2. 测试接口: 3. 串口使用串口一,波特率9600 单片机引脚------------CH ...

  2. 009_STM32程序移植之_内部falsh

    flash  模拟  EEPROM  实验 1. 测试环境:STM32C8T6 2. 测试接口: 3. 串口使用串口一,波特率9600 单片机引脚------------CH340引脚 VCC---- ...

  3. 016_STM32程序移植之_舵机

    STM32程序移植之舵机PWM测试 接线图如下: STM32引脚 舵机引脚 功能 GND GND 正极电源 具体看舵机的额定电压 PA6 PWM引脚 STM32引脚 CH340引脚 GND GND 3 ...

  4. 007_STM32程序移植之_多通道ADC转换

    1. 测试环境:STM32C8T6 2. 测试:使用DMA进行多通道ADC转换 3. 描述:用 ADC 连续采集 12 路模拟信号,并由 DMA 传输到内存.ADC 配置为扫描 并且连续转换模式,AD ...

  5. 018_STM32程序移植之_串口接收中文

    (一)在平时数据传输中很少用到接收中文的情况,但是最近需要用到就花了半天时间来弄弄 (二)接收原理,从现在接收情况分析:一个中文占两个数据的空间,也就是两个十六进制可以转化成为一个中文 (三)示例情况 ...

  6. STM32 内部flash的读写程序

    ​ /* Base address of the Flash sectors */ #define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) /* Base ...

  7. 010_STM32程序移植之_lib库建立

    STM32之lib库建立 1. 测试环境:STM32C8T6 2. 测试接口: 3.串口使用串口一,波特率9600 单片机引脚------------CH340引脚 VCC-------------- ...

  8. STM32F407使用MFRC522射频卡调试及程序移植成功

    版权声明:转载请注明出处,谢谢 https://blog.csdn.net/Kevin_8_Lee/article/details/88865556 或  https://www.cnblogs.co ...

  9. 第50章 读写内部FLASH—零死角玩转STM32-F429系列

    第50章     读写内部FLASH 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...

随机推荐

  1. php之简单算法

    选择排序 方式:先让第一位与其他位比较大小找到最小的数字,然后是第二位与除第一位的其他位比较大小找出第二位,依此类推 $arr = [2,45,12,67,33,5,23,132,46]; for ( ...

  2. char. 类型篇

    对于强类型的c语言,类型贯穿着整个语言体系,掌握好类型,学c语言就相当上手 .. 计算机的内存被分成一个个的储存单元.     一个储存单元=1 byte=8 bit 对于基本整型类型.char  = ...

  3. go 实现每次生成不同随机值

    直接使用rand.Intn(10) 多次运行发现每次的随机值都是一样的 查看 Intn方法的源码说明 // Intn returns, as an int, a non-negative pseudo ...

  4. Codeforces 666E Forensic Examination(广义后缀自动机+线段树合并)

    将所有串(包括S)放一块建SAM.对于询问,倍增定位出该子串所在节点,然后要查询的就是该子串在区间内的哪个字符串出现最多.可以线段树合并求出该节点在每个字符串中的出现次数. #include<b ...

  5. (五)sturts2+spring整合

    一.Spring与Struts的整合 1.1:加入Spring的jar包.1.2:加入Struts的jar包.1.3:加入Struts与Spring的整合jar//struts2-spring-plu ...

  6. JS使用MD5加密

    MD5加密JS代码 /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algor ...

  7. docker系列之六容器数据卷

    docker之容器数据卷 一.容器数据卷 docker容器运行的时候,会产生一系列的文件,那么我们希望容器产生的数据能提供给其他的容器使用,也就是说怎么实现容器间的数据的共享呢?这就需要用到我们所提到 ...

  8. Java中常见时间类的使用

    模拟场景针对于常用的操作API,比如流操作(字符流.字节流),时间操作等,仅仅了解概念性的定义终究是无法了解该类的用途和使用方式:这种情况在使用的时候便一脸茫然,脑海中映射不到对应的知识点.本篇博客将 ...

  9. SpringBoot mysql出现The server time zone value '�й���׼ʱ��' is unrecogni

    MySql :8.0.18 引入的mysql驱动: SpringBoot整合Mybatis的框架,在访问Controller的时候 : ava.sql.SQLException: The server ...

  10. C++ 类再探

    关于类的一些遗漏的点. #include <iostream> #include <typeinfo> #include <string> using namesp ...