1.主要功能
基于STM32F103ZET6单片机(正点原子精英STM32F103开发板)可以实现刷卡开门,指纹开门,输入按键密码开门,远程app通过WiFi开门四种方式,密码键盘采用2.8寸TFT_LCD触摸屏设置虚拟键盘,而不是实体键盘,开锁执行机构采用SG90舵机,指纹模块采用AS608,WiFi模块采用ESP8266-01S。
1.1 主要元器件
1.正点原子STM32F103ZET6开发板(也可以自己设计PCB)
2.RC522射频识别模块
3.AS608指纹识别模块
4. 2.8寸TFT_LCD触摸屏
5.SG90舵机
6. ESP8266-01S
2.FreeRTOS移植到STM32F1上
FreeRTOS是属于RTOS(Real Time Operating System)其中的一种,RTOS包括比如常见的ucos、RTthread、ThreadX等等,RTOS和裸机编程的主要区别就是RTOS可以多个任务同时进行,而裸机只同一时刻只能有一个任务在执行。就像我们的门禁系统,涉及到刷卡识别子任务、控制舵机子任务、指纹识别子任务、LCD屏幕显示子任务和WiFi通信子任务,RTSO就可以建立三个任务,让这五个任务同时执行,而裸机只能一个一个去执行。
FreeRTOS的优点主要有:可移植性强、可以根据需求自由裁剪内核大小、支持多任务间的通讯、拥有高效的软件定时器、任务数量和优先级数量不限、支持抢占式和合作式调度,最重要的就是源码开源,而且可以免费使用,在很多预算不高的小公司可以实现商用,当然安全性需要考虑。
2.1 FreeRTOS源码获取
FreeRTOS的官网是:FreeRTOS™ - FreeRTOS™,但是其官网是国外的,所以国内访问会比较慢,我是用VPN梯子访问的。打开后官网首页如下图所示,然后点击按钮。
然后可以看到有三个版本,建议选择FreeRTOS 202212.01,因为LST版本的没有Demo例程,对于初学者不是很友好
我把源码放到百度网盘了,可以自行下载。
链接: https://pan.baidu.com/s/1yX-5kH_EyyUeK726hRxizw?pwd=1234
提取码: 1234
下载下来后是一个zip压缩包,需要解压,解压后如下图所示,我们主要关注FreeRTOS这个文件夹就行,其他的不用管。
点开FreeRTOS文件夹后可以看到两个文件夹:Demo和Source
Demo就是针对不同单片机平台写的例程
Source文件夹才是我们本次移植的重点
2.2 移植到STM32F103ZET6
1.首先要建立一个空白的标准STM32F103ZET6工程文件,我已经建立好一个,链接如下:
链接: https://pan.baidu.com/s/1T4B8rtLk_nWs1l2THx2Prw?pwd=F103
提取码: F103
下载后打开,编译一下。
2.然后在 空白工程文件夹下新建一个FreeRTOS文件夹
然后就可以参考正点原子的《STM32F1 FreeRTOS开发手册_V1.1》手册里的第二章移植。链接如下:
链接: https://pan.baidu.com/s/1OT4G3PuGKgFOq95uliZgSQ?pwd=ZDYZ
提取码: ZDYZ
移植后的工程编译如下:
移植好的工程文件链接如下:
链接: https://pan.baidu.com/s/1zeC-HNqtkVZfxALgqvP6CQ?pwd=Free
提取码: Free
3.源码讲解
4.源码获取
完全开源