前言

朋友毕设需要用到扫码模块,但是网上这方面的资源比较少,下载源码还需要收费。所以自己写了一个简单实用的,大家可以来我这下载源码。

功能介绍

本案例主要实现的功能是,GM65扫描到二维码包含的信息后,将信息通过串口传输给32单片机,32单片机再将信息使用OLED显示屏显示出来,同时可以实现扫码开灯、关灯等功能。

主要硬件

STM32F103C8T6最小系统板、GM65二维码识别模块、0.96寸4针OLED显示屏

模块接线

GM65二维码识别模块—接32的串口3
TX—PB11 RX—PB10 VCC—5V GND—GND
4针OLED显示屏
SCL—PA5 SDA–PA7 VCC—3V3 GND—GND

实验效果

当二维码的内容是字符串D1时灯亮,是D0时灯灭。OLED显示屏的第2行显示了二维码的内容。第3行显示灯的开关。

当二维码的内容是字符串xixihaha时,不会执行开关灯的操作,但也会显示内容在显示屏上。

程序中,串口3收到二维码信息后会通过串口1返发给PC,故除了可以用显示屏看到效果外,也可以用串口助手看到二维码的内容。

二维码及模块的一些配置

1、二维码的生成是在微信小程序的草料二维码。

2、GM65模块设置成串行通讯模式,同时设置波特率为9600
当模块发出嘀嘀嘀声响时,说明设置成功。

3、如果觉得模块的灯太亮,声音太大可以按下面扫码设置

代码实现

main.c文件

/*=======================main.c======================*/
#include "stm32f10x.h"
#include "usart.h"
#include "led.h"
#include "oled.h"
#include "string.h"u8 recv_ok = 0;       //接收完成标志
u8 uart_buf[32]={0};  //用于保存串口数据
u8 uart_cnt=0;        //用于定位串口数据的位置int main()
{Init_Usart();   //初始化3个串口led_init();      //初始化LEDOLED_Init();     //初始化OLEDOLED_Clear();        //OLED清屏printf("================GM65二维码模块测试=================\r\n");    OLED_ShowString(30,0,(u8*)"GM65 TEST!",16);OLED_Refresh();while(1){if(recv_ok==1)  //接收完成{OLED_Clear();        //OLED清屏OLED_ShowString(30,0,(u8*)"GM65 TEST!",16); //命令判断,当收到D0关灯,D1开灯 if(strstr((char*)uart_buf,"D0"))  {GPIO_SetBits(GPIOC,GPIO_Pin_13);   //关灯OLED_ShowString(0,32,(u8*)"LED OFF",16); }else if(strstr((char*)uart_buf,"D1")){GPIO_ResetBits(GPIOC,GPIO_Pin_13); //开灯OLED_ShowString(0,32,(u8*)"LED ON",16); }OLED_ShowString(0,16,(u8*)"QRCode:",16); OLED_ShowString(8*7,16,(u8*)uart_buf,16); //显示二维码内容OLED_Refresh();      //刷新OLEDuart_cnt = 0;        //最后清零,重新计数recv_ok = 0;         //接收完成标志置0}}
}//串口3中断
void USART3_IRQHandler(void)      //串口3中断服务程序
{uint8_t d;//检测标志位if(USART_GetITStatus(USART3, USART_IT_RXNE)==SET){//接收数据d = USART_ReceiveData(USART3);//将接收到的数据依次保存到数组里uart_buf[uart_cnt++] = d;  //GM65模块发完一组数据后会自动发送一个回车符,所以通过检测是否接受到回车来判断数据是否接收完成if(d == 0x0D) {recv_ok = 1;  //接收完成}//将接收到的数据,通过串口1返发给PCUSART_SendData(USART1, d);while( USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET); //等待发送完成USART_ClearFlag(USART1,USART_FLAG_TXE);         //清空标志位USART_ClearITPendingBit(USART3,USART_IT_RXNE);  //清空标志位}
}

资源下载

需要源码的可以自行下载。https://github.com/J-CHUN/STM32-GM65.git
下载操作:

STM32+GM65二维码识别模块相关推荐

  1. 二维码识别模块在物流仓储、通道闸机的嵌入式应用

    随着物联网自动识别技术的广泛应用,采用二维码识别模块的设备,在零售.交通.物流.工业等各个行业上都有它的身影.那么他们都在哪些场景应用到?给我们的工作生活带来哪些便利呢?下面远景达(RAKINDA)通 ...

  2. Quirc二维码识别模块

    背景 师兄要用这个参加集赛,但是说自己C语言不太行,花了一个多小时帮他分析了一下(虽然自己也不太行). 对应模块的GitHub地址:https://github.com/dlbeer/quirc. 记 ...

  3. 二维码识别 基于stm32 ov7725

    二维码识别 基于stm32 ov7725 二维码识别技术在我们的生活中应用的很方便了,但基本都是基于手机的,目前在公交车上也存在了扫描二维码的机器,上次坏了之后,发现一只小企鹅,原来是基于linux的 ...

  4. 前端学习--实现二维码识别功能

    概述: 最近所做的毕设项目正好与之前很火的共享单车相关,共享单车应用中很关键的一个部分就是扫码用车,但我之前没有做过相关的模块,在参考网上相关实现的教程时发现,基本上所有的二维码识别模块都是通过客户端 ...

  5. 海康visionMaster4.1二维码识别/检测之脚本文件的调试

    关键词:脚本文件调试:海康visionMaster4.1:二维码识别 介绍脚本文件调试之前,先说一个"二维码识别"模块的有趣的点. Tips:"二维码识别"模块 ...

  6. openmv和stm32串口通信完成二维码识别

    openmv和stm32串口通信完成二维码识别 文章目录 前言 一.所用的硬件: 二.openmv端 2.stm32端 总结 前言 注:我只是个大一的小白,本文只完成基本功能,希望能帮助有困惑的人(我 ...

  7. python实现二维码识别软件_OpenCV和Zbar两个Python模块实现二维码和条形码识别

    在我们的日常生活中,处处可见条形码和二维码. 在以前,我们去逛书店时,或者你现在随手拿起你身边的一本书,你肯定能看到书本的封页后面印有一排黑色线条组成的标签,也就是条形码:你去你们学校的自助机上借书还 ...

  8. K210学习笔记(十)——二维码识别

    前言 MAIX BIT(K210)和openmv在传统视觉处理这个方面代码是通用的,掌握K210的色块识别和二维码识别其实也掌握了openmv对应的用法. 一.二维码是什么? 二维码 (2-dimen ...

  9. Atitit java 二维码识别 图片识别

    Atitit java 二维码识别 图片识别 1.1. 解码1 1.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.1 1.3. 二维码的样例:2 1.4. 定位图案2 1. ...

  10. iOS 花式二维码生成和二维码识别

    iOS 原生的二维码识别非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算尽量用原生的二维码识别,然后最近把原生的二维码生成也顺便做了一遍,并且在原有基础上加了一些样式参数,封了一个 ...

最新文章

  1. 元气骑士机器人修好后怎么用_《元气骑士》五大“难度”挑战,从手速到恶搞很嗨,还能解锁皮肤...
  2. angular学习笔记(三十)-指令(4)-transclude
  3. 一个简单的mysql存储过程
  4. USB port 如何识别不同的Charger类型
  5. C++改变基类成员在派生类中的访问属性
  6. 绘制HTML5的Logo
  7. 设计模式(二) 工厂模式
  8. oracle for dotnet
  9. 三次握手和四次挥手图解_图解TCP三次握手和四次挥手
  10. IIS7.5配置对PHP的支持
  11. 应用Strong Name保存.NET应用程序集
  12. java上传和下载文件代码_JavaWeb中上传和下载文件实例代码
  13. 树形dp小胖守皇宫(vijosP1144)
  14. vimpython配色_超漂亮 vim 配置:space-vim
  15. Java-JUC(六):创建线程的4种方式
  16. Network | parity bit
  17. 反编译与计算机软件的知识产权保护
  18. 利用google工具进行关键词研究
  19. 新升级带特效喝酒神器小程序源码-多种游戏支持流量主
  20. win7台式机解决插入耳机没有声音以及显示麦克风未插入的解决方法

热门文章

  1. Sentaurus Process Refinement Boxes
  2. Sentaurus TCAD SDevice 实例教程
  3. FlashFXP 5.4.0 注册
  4. [STC单片机] STC32G单片机双CAN通信测试
  5. url转码解码工具类
  6. 用c语言输出100到200之间的素数
  7. c语言__100以内的奇数
  8. MATLAB 官方文档
  9. 【图像分割】基于直觉模糊C均值聚类实现图像分割IFCMmatlab代码
  10. 模糊c-均值聚类算法(FCM)