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. 对快速排序的理解以及相关c++代码

    快速排序:在一组数据中,可以将左边的数字当作枢轴(右边也可以),接下来要做的就是,先从右边找到比枢轴小的数, 再从左边找到比枢轴大的数,接着将这两个数进行交换,重复上述步骤找出所有符合条件的数进行交换 ...

  2. Python 中集合使用

    集合在使用中由于自动虑重,而且效率特高,故在提取数据时用上,但是由于集合没有切片功能没有取第几个元素的功能,但是一直使用集合切片不报错,但是执行不下去,导致一直存在问题. 修改为list后正常 例如: ...

  3. Oracle查询部门工资最高员工的两种方法 1、MAX()函数 2、RANK()函数

      本文以SCOTT用户下初始的EMP表为参考.代码可直接使用.   查询EMP表结构的语句如下,[代码1]: DESC EMP;   EMP表结构如下:[结果1]: SQL> DESC EMP ...

  4. c++设计原则:继承与组合

    “优先使用对象组合,而不是继承”是面向对象设计的原则之一. 组合也叫“对象持有”,就是在类中定义另一类型的成员,继承会破坏类的独立性,增加系统的复杂性,一般系统的继承层次不超过3层.组合拥有良好的扩展 ...

  5. 跳转语句 break;continue; return; goto 区别用法

    C语言是按顺序执行语句的语言——一个接一个.即使它有条件语句或循环语句,程序的流程也是自上而下的.没有顺序流的随机跳转或跳转.但我们的程序是为了满足任何现实世界的需求,一个接一个地执行永远不会很直接. ...

  6. [Vue]axios 发出请求的config

    这些是用于发出请求的可用配置选项. 只有url是必需的. 如果未指定方法,请求将默认为GET. { // `url`是将用于请求的服务器URL url: '/user', // `method`是发出 ...

  7. (十三)JSON的使用(下)

    (接上一章节) 4.2 使用ajax交互方式 使用ajax的转换思想        A:异步请求在页面中发起,也要在页面中接收数据并展现. B:ajax中的数据不能从作用域中获取,只能从respons ...

  8. C# explicit interface implementation(显式接口实现)

    C# explicit interface implementation 某个类要实现两个包含相同方法名的接口, 应该如何实现这两个方法? namespace ExplicitInterfaceImp ...

  9. XML-RPC-1概述

    XML-RPC是一个远程过程调用(远端程序呼叫)(remote procedure call,RPC)的分布式计算协议,通过XML将调用函数封装,并使用HTTP协议作为传送机制.   中文名 XML- ...

  10. 多态——virtual

    作用:解决当使用基类的指针指向派生类的对象并调用派生类中与基类同名的成员函数时会出错(只能访问到基类中的同名的成员函数)的问题,从而实现运行过程的多态 不加virtual #include<io ...