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文件的内容