硬汉嵌入式论坛

 找回密码
 立即注册
查看: 819|回复: 0
收起左侧

[客户分享] AT32 MCU QR USB HID Keyboard例程

[复制链接]

41

主题

1

回帖

124

积分

初级会员

积分
124
发表于 2022-1-9 21:13:43 | 显示全部楼层 |阅读模式
QR USB HID Keyboard例程
前言
本应用笔记的目的是提供在AT32微控制器上实现QR Decode应用程序,并通过USB HID模拟keyboard将解码数据上传到PC
注:本例程对应的代码是基于雅特力提供的V2.x.x 板级支持包(BSP)而开发,对于其他版本BSP,需要注意使用上的区别。


支持型号列表:
AT32F4 系列

概述
二维码、条形码相信大家都非常熟悉了,条码技术已经广泛应用于我们生活当中。微信扫二维码、支付宝二维码付款、商品条形码、超市储物柜条形码等。但是由于二维码复杂度,目前识别二维码的设备还不够丰富。对此本文档利用带浮点运算的、大容量 SRAM、高主频芯片 AT32F403A,调用雅特力提供的 Artery_QR 二维码解码库在 AT-START-F403A 开发板上来实现二维码、CODE128\CODE39\I25\EAN13 条码扫描识别。
QR 二维码解码流程
了解了QR二维码的构造,下面我们来了解解码流程,QR二维码的解码流程如下图2所示。
1) 定位并获取符号图像。深色与浅色模块识别为“ 0”“1”的阵列。
2) 识读格式信息(如果需要,去除掩模图形并完成对格式信息模块的纠错,识别纠错等级与掩模图形参考)。
3) 识读版本信息,确定符号的版本。
4) 用掩模图形参考,从格式信息中得出对编码区的位图进行异或处理消除掩模。
5) 根据模块排列规则,识读符号字符,恢复信息的数据与纠错码字。
6) 用与纠错级别信息相对应的纠错码字检测错误,如果发现错误,立即纠错。
7) 根据模式指示符和字符计数指示符将数据码字划分成多个部分。
8) 最后,按照使用的模式译码得出数据字符并输出结果。二维码的解码流程具体实现的步骤和方法是比较复杂,涉及到了QR二维码的标准规则及相对应的算法,知识点很多,大家感兴趣的话可以自己多去网上查阅资料了解。
硬件资源
1) LCD 9341
2) 外接BuzzerPE15
3) Arduio
4) AT-START-F403A V1.0 实验板
5) USB
6) Sensor BF3901
7) USER key
:
1.demo是基于AT32F403A的硬件条件,若使用者需要在AT32其他型号上使用,请修改相应配置即可。
2.供电部分:使用电源供电,或USB线供电(勿使用Link单独供电)。
demo使用
1) 打开QR decode project源程序,编译后下载到实验板。
2) 由于该demo运行占用了169KSRAM,所以在使用demo前需开启芯片的扩展SRAM功能(扩展为224KB),为了方便用户使用,demo已经在启动文件中开启了此项功能。
3) 连接USB线到PC,通过上位机可以识别到该设备:HID Keyboard Device(标准键盘输入模式,无须驱动)
4) 根据LCD显示信息,查看BF3901初始化是否成功,并按下USER key按键,开启QR 解码侦测。
5) 将摄像头BF3901对准二维码,LCD显示当前抓取的摄像头图像,此时芯片一直在运算QR解码。
6) 若芯片一直没有解析到二维码,一维码数据,则会一直运行下去,直到解析到数据,如图4所示。蜂鸣器会响一下,并且将解析到数据通过USB传输到PC,如图5所示。Ps. QR decode 默认只侦测二维码,若要侦测全部图码等,需开启宏定义:Detect_all





QR_decode_Keyboard_V2.0.0.zip

9.2 MB, 下载次数: 4

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 09:20 , Processed in 0.572065 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表