前言

该模块是博主在做工程实训的物流小车所用,当时因为某些特殊原因,不得不放弃视觉识别,因此想到用模块去代替功能。该模块就是当时在淘宝买的。虽然不如openmv那些效率高,但还是可以完成功能,当时用得也还不错,接上电源后,直接就可扫描,给的例程实在复杂,作为新手的我很多地方不是很懂,就自己试着搞了,还好最后实现了功能,使用的是正点原子stm32f1开发板。

模块接线图(MD300)


其他的就不放了。

代码

其实这个模块主要问题还是在数据的接收处理上。我用的是串口调试助手,显示我要的数据的提取、测试。因为工训的二维码内容位数字,如123,所以测试时自己生成了一个二维码123+321这种,故一下代码均以此来写的。

首先usart.c串口重定向

//在usart.c中重定向fputc函数
int fputc(int ch, FILE *f)
{      while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   USART1->DR = (u8) ch;      return ch;
}

方便串口调试助手调试

数据接收

char e[10];
char f[10];
int i=0;
int j=0;
void USART1_IRQHandler(void)                 //串口1中断服务程序{#if SYSTEM_SUPPORT_OS       //如果SYSTEM_SUPPORT_OS为真,则需要支持OS.OSIntEnter();
#endifif(USART_GetITStatus(USART1,USART_IT_RXNE)) // 中断标志,判断中断标志位非空{e[i] = USART_ReceiveData(USART1);//定义一个数组接收数据if (e[i]!= '+')//跳过‘+’{f[j]=e[0]; //这里小编测试了许多次,发现数据总是接收到数组的第一位,这里真的搞了好久才发现j++;printf("数据是%s",f[j]);}
// 串口3中断服务函数
void USART3_IRQHandler(void)
{if(USART_GetITStatus(USART3,USART_IT_RXNE)) // ÖжϱêÖ¾,ÅжÏÖжϱê־λ·Ç¿Õ{a[m] = USART_ReceiveData(USART3);if (a[m]!= '+'){d[n]=a[0];USART_SendData(USART1, d[n]);
//       USART_ClearITPendingBit(USART1, USART_IT_TXE);n++;p++;}}USART_ClearITPendingBit(USART3, USART_IT_TXE);}

串口3用来与二维码模块通信

结语

要拿到主函数的话一定要定义全局变量,当时我后面又在lcd上显示测试的时候,因为这个又卡了许久,总的来说,这个模块很简单,但一些细节确实要注意,一定要注意!!!

规格书:https://download.csdn.net/download/qq_47941078/16744853?spm=1001.2014.3001.5501

STM32学习记录——MD300二维码扫描模块相关推荐

  1. 【Android 学习】之二维码扫描开发(闪光灯功能)

    .............................................................................. Android二维码扫描我们可以调用Zin ...

  2. win10 vs2022 .net6 opencvsharp 4.5.5自己编译wecharts 微信二维码扫描模块。

    文章主要介绍如何自己编译opencvsharp源码,因为需要.net 6 ,所以介绍vs2022 的编译. https://github.com/shimat/opencvsharp 首先在githu ...

  3. iOS原生实现二维码扫描

    iOS原生实现二维码扫描 最近项目上需要开发扫描二维码进行签到的功能,主要用于开会签到的场景,所以为了避免作弊,我们再开发时只采用直接扫描的方式,并且要屏蔽从相册读取图片,此外还在二维码扫描成功签到时 ...

  4. GM65条形码二维码扫描识别模块与STM32学习

    目录 模块介绍: 简介: 原理介绍: 工作流程: 技术参数: 修改配置: 代码介绍: 串口函数: 主函数: 模块介绍: 简介: GM65 条形码二维码扫描识别模块是一种基于激光扫描头的识别设备 原理介 ...

  5. 二维码扫描之Zxing的一次实操记录,配合添加手电筒开关

    刚好项目中涉及到了二维码扫描的功能,就记录下Zxing的使用过程,个人擅自添加了手电筒到界面,可以给大家一些参考. 首先看下效果图如下 这个红色的手电筒就是自定义加上去的,点击可以切换扫描时候的闪光灯 ...

  6. Android 8.0学习 (36)---Android 8.0 WebView 拍照、简易预览、二维码扫描 各种问题解决

    Android 8.0 WebView 拍照.简易预览.二维码扫描 各种问题解决 项目用到了WebView包装HTML5做成app使用,其中有页面用到了二维码和拍照上传功能.本人从未做过android ...

  7. 2022-02-18 Android app 二维码扫描demo,用zxing库,实测ok,记录一下所参考有价值的文章,有生成二维码的demo,但没有亲测。

    一.Android中二维码扫描的最常用库是zxing和zbar,这里用zxing. 二.实测效果图,扫描完成后会以Toast方式显示结果. 三.测试代码的架构 四.代码不细说,想看源码的可以downl ...

  8. ios客户端学习-二维码扫描和应用跳转

    转载至链接:http://sindrilin.com/ios-dev/2015/11/01/二维码扫描和应用跳转.html 序言 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如Z ...

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

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

  10. 聊一聊二维码扫描登录原理

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:2 个月的面试亲身经历告诉大家,如何进入大厂? 扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且 ...

最新文章

  1. PHP如何进阶,提升自己
  2. 计算机系统概论寻址空间,自考《计算机系统结构》重点知识概论:数据表示(二)...
  3. 编程之美-数字哑谜和回文方法整理
  4. 使用QT的一些小Tipster
  5. P3899-[湖南集训]谈笑风生【主席树】
  6. java线程池并发_Java并发教程–线程池
  7. Feather包实现数据框快速读写,你值得拥有
  8. [react] react中可以在render访问refs吗?为什么?
  9. 怎样从Linux终端管理进程:10个你必须知道的命令
  10. python date,datetime 和time的区别
  11. spark sql建表的异常
  12. 地脚螺钉直径系列_机械系统通用件——螺栓、螺钉和螺柱国家标准
  13. Springboot基于thymeleaf的一个简单的学生管理系统
  14. 在线文档 - 腾讯文档
  15. 知识图谱多跳问答推理研究进展、挑战与展望
  16. DevOps 在公司项目中的实践落地
  17. 最新!7月份火爆Github的热门Python项目
  18. 仿制苏宁易购—静态网页
  19. 惠普打印机、扫描仪二次开发、支持状态获取
  20. vue3 + element-plus 动态绑定icon图标

热门文章

  1. Java调用外部api接口请求数据(阿里云ISBN查询图书信息为例)
  2. java计算机毕业设计Web前端开发技术儿童教育网站MyBatis+系统+LW文档+源码+调试部署
  3. 压缩的Swf文件利用Python解压
  4. 苹果鼠标右键怎么按_精选分享,你不了解的这些鼠标增强神器
  5. wps复选框怎么设置,wps表格中如何插入复选框?
  6. 国际化时区-北美时区介绍
  7. C语言—各种数据类型间的混合运算
  8. C++ 修改图片格式(后缀)
  9. HTML5的文档声明
  10. 面对换领导或空降管理者,该怎么办?