[STM32F4] 基于stm32f4的智能门锁

[复制链接]
2575|37
 楼主| ym0sly 发表于 2024-7-30 11:39 | 显示全部楼层
进入解锁后界面,选择修改密码

4437966a86065b93c0.png
 楼主| ym0sly 发表于 2024-7-30 11:39 | 显示全部楼层
密码修改为“123456”后保存,会保存到内部eeprom
3227066a860775b4b8.png
 楼主| ym0sly 发表于 2024-7-30 11:39 | 显示全部楼层
步骤二:把刚刚写的代码注释,重新下载进去,代码就可以正常运行了,输入刚刚设置的密码“000111”就可以解锁
3932266a86083497b7.png
 楼主| ym0sly 发表于 2024-7-30 11:40 | 显示全部楼层
蓝牙调试
1、首先下载“蓝牙串口”APP
2、连接蓝牙后发送密码“123456::”
5866166a8608fef4c8.png
 楼主| ym0sly 发表于 2024-7-30 11:40 | 显示全部楼层
蓝牙发送密码不解锁?

1、可能是波特率不对
①可以通过AT指令修改蓝牙模块的波特率与单片机一样(9600),使得蓝牙模块能连接单片机(单片机代码初始化蓝牙模块的波特率一般为9600)
②可以用usb转ttl将蓝牙模块与电脑相连,打开串口助手后,用手机连接蓝牙发送数据,调节串口助手的波特率,接收到正常数据后记录波特率,这个就是蓝牙模块现在的波特率,随后将代码中初始化蓝牙模块的波特率改成这个波特率,单片机就可以正常与蓝牙模块通信
2、可能是蓝牙模块接线不对,吧tx rx对调
3、可能蓝牙模块已经损坏
 楼主| ym0sly 发表于 2024-7-30 11:40 | 显示全部楼层
开机图片取模显示
取模软件合集.rar
1、先画一张黑白的128*64分辨率的 .bmp图片
2245766a860c8d9a9a.png
 楼主| ym0sly 发表于 2024-7-30 11:41 | 显示全部楼层
打开Image2Lcd软件,先打开图片,按照如下配置,点击保存,会生成取模代码
106266a860dbf0636.png
 楼主| ym0sly 发表于 2024-7-30 11:41 | 显示全部楼层
知识扫盲
(一)汉字的显示
(具体代码参考正点原子“汉字显示实验”)

1、汉字的显示原理

1)学习过屏幕驱动的应该都知道,屏幕的显示无非就是在屏幕上打相应颜色的点,比如要显示一个字符 ‘A’ 那么我只需要知道 ‘A’ 相应的点阵数据就可以把它显示出来,汉字也一样。
 楼主| ym0sly 发表于 2024-7-30 11:43 | 显示全部楼层
汉字库

1)汉字库文件在正点原子的开发板资料->“SD卡根目录文件”中,可以到正点原子官网论坛下载
8134566a8616cb4e87.png
2)汉字库有两类文件,.FON与.BIN文件,.FON代表汉字库点阵文件,.BIN表示的是编码表,与点阵一一对应,比如GBK编码的第一个字就对应着点阵里的第一个点阵数据,映射关系如下:

UNIGBK->GBK12.FON
UNIGBK->GBK24.FON
UNIGBK->GBK32.FON
 楼主| ym0sly 发表于 2024-7-30 11:43 | 显示全部楼层
有兴趣可以百度一下查看GBK编码表:

4019566a86178eee99.png
 楼主| ym0sly 发表于 2024-7-30 11:44 | 显示全部楼层
汉字库的存储位置

2)汉字与字符不同的是,汉字有1万多个,ASCII码字符却只有100多个,并且汉字的显示明显比字符的点阵复杂程度高,比如说字体是12的字符占用点阵是12x6,每个字符需要12x6/8=9个字节的存储空间。字体是12 的汉字占用12x12的点阵,每个汉字需要12x12/8=18个字节存储空间,这还是最小字体,大的字体所需要的存储空间只会成倍增加
 楼主| ym0sly 发表于 2024-7-30 11:44 | 显示全部楼层
一般12号字体的汉字库需要500K字节、16号字体700K、24号字体1.6M、32号字体3M,这对于单片机来说数据量太大了,内部FLASH512K~1M表示压力很大
2753266a8618de9d81.png
 楼主| ym0sly 发表于 2024-7-30 11:44 | 显示全部楼层
)需要把汉字库保存到SD卡,再将SD卡中的汉字库数据保存到外部FILASH才行,w25q128无疑是个好选择,它拥有16M的存储空间,SPI通信协议,读写速度也是相当快。
 楼主| ym0sly 发表于 2024-7-30 11:44 | 显示全部楼层
把汉字库里的点阵数据读取出来显示到MCU屏

1、数据编码格式的问题

1)有关显示汉字就必然会涉及编码格式的问题,不同的编码格式对应的汉字编码是不同的,比如UTF-8编码的文件用GB2312编码打开就会乱码。
同理,比如文档的格式是UTF-8编码,但是我的字库是GBK编码,读出来的数据直接显示到屏幕就必然会乱码

2)所以显示汉字如果乱码首先需要检查的就是编辑器的编码,保证编码一致。
 楼主| ym0sly 发表于 2024-7-30 11:46 | 显示全部楼层
项目图片展示 3102866a8620e30c79.png
 楼主| ym0sly 发表于 2024-7-30 11:47 | 显示全部楼层
资料下载:https://download.csdn.net/download/mbs520/12662458

7138066a8624a5d192.png
6484866a8624f99dae.png
实际测量不符 发表于 2024-8-29 14:07 | 显示全部楼层
实际应用中需要对密码进行加密存储,并确保密码输入界面具有一定的防偷窥设计。
星辰大海不退缩 发表于 2024-8-29 23:52 | 显示全部楼层
RTC实时时钟稳定性如何
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部