基于STM32MP157的人脸识别智能门锁
1 环境搭建
1.1 开发板烧录系统
注意!!!:烧写前一定要将拨码开关给拨成000的模式,自己一定要检查拨码开关。
点击进入烧写工具后,首先选择USB方式进行烧写,点击此处,在下拉列表中选择USB模式
若如下图显示没有识别到设备,说明自己接线有问题,自己去排查线路情况
待线路重新排查连接无误后,摁一下复位键之后,然后点击刷新按钮如下图(如果后续还是无法识别USB设备,就把这个过程多尝试几次)
注意:此处线路如果连接不稳定也会引起无法识别,出现无法识别,就将所有线路都给插紧一些,多刷新几次,多复位几次
点击之后如果自己线路确实连接无误,成功现象如下图所示,能够正确识别Serial number。
此时在Serial number识别成功后点击Connect连接,显示Connected即代表连接成功
识别成功后点击Open file,如果屏幕上没有这个按钮就点击下图所示的+号即可找到Open file
点击Open file选择对应文件,课后资料中已经提供了
其次选择路径,将路径选择为上一步所选择的文件所在的文件路径
最后检查一下各个选项是否正确,确认无误后点击烧录
烧录进度条如图,烧录时间大概要等待一段时间:
加载完成后打印如下信息代表烧写成功了!
系统烧写成功后,请将开发板上的拨码开关设置为010模式。此模式用于配置开发板从 eMMC 存储器启动。
1.2 启动系统
现在开始启动开发板,首先打开设备管理器,查看自己的串口号是多少,如下图,我自己电脑上显示的是我的串口线使用的是COM5端口
拨码开关 010
串口工具
连接后重启开发板
选择模式,多按几次回车
选择3
要连接到虚拟机
1.3 虚拟机配置
把需要的文件拷贝到虚拟机
交叉编译工具链复制到虚拟机
修改交叉编译器文件权限
sudochmod777met
把交叉编译工具链需要的SDK导入进来
source/opt/st/fsmp1a/3.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi查看是否安装成功
$CC--version1.4 QT 套件配置
工具->外部->配置
构建套件----编译器----添加—GCC-C
1.4.1 配置GCC
1.名字改成: FSMP1
2. 路径:/opt/st/fsmp1a/3.1-snapshot/sysroots/x86_64-ostl_sdk-linux/usr/bin/arm-ostl-linux-gnueabi/arm-ostl-linux-gnueabi-gcc
3. ABI :自定义
4. 单击应用 单击确认
1.4.2添加g++套件
1.4.3 qmake
工具->外部->配置-构建套件----Qt版本----添加–选路径-改名字/opt/st/fsmp1a/3.1-snapshot/sysroots/x86_64-ostl_sdk-linux/usr/bin
1.4.4 配置ssh连接
解决虚拟机和开发板ssh版本不一致
HostKeyAlgorithms +ssh-rsa PubkeyAcceptedkeyTypes +ssh-rsa1.4.5 添加远程Linux设备
具->外部->配置-设备—添加-Remote Linux Device
一直下一步,连接测试一定是失败的
,没有做连接相关的配置
ping 开发板测试
1.4.6 kit套件汇总在一块
工具->外部->配置-构建套件—添加
把开发板上面的图案关闭掉
psplash-drm1.5 QT项目注意事项
1.5.1 套件勾选
1.5.2 . 报错
解决方案:勾选上
1.5.3 创建目录失败
创建目录失败: /device/.../opt/faceRecog/bin Device'FSMP1A'is currently marked as disconnected.1. 虚拟机是否和开发板相连接2. 确认 Ubuntu 能ping通开发板3. 确认sshroot@开发板IP 能登录4. Qt Creator 里点击测试连接5. 如果仍然失败,直接删除设备并重新添加1.5.4 绿屏问题![]()
- 代码不要放到共享文件夹:共享文件夹里面执行代码会有bug,那边环境不是很稳定,不止是qt代码,其他的c语言可执行程序也会有现象不正常情况。
放到/home/linux/还是绿的??
- qt不要开影子工程:代码更新会同步不上去。
qt新编译的程序没同步到开发板上面去,运行了一下其他的代码程序更新了一下状态之后才正常
ps aux | grep -E "weston|Xorg|wayland|qt|eglfs|plymouth|psplash" | grep -v grep
1.6 开发板屏幕旋转
在/etc/profile.d/qt-eglfs.sh中添加如下几行代码
vi/etc/profile.d/qt-eglfs.shexportQT_QPA_EGLFS_ROTATION=90exportQT_QPA_EGLFS_NO_LIBINPUT=1exportQT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0:rotate=90