当前位置:   article > 正文

openmv和stm32串口通信完成二维码识别_openmv与stm32通信实现apirltag码识别_openmv识别二维码

openmv识别二维码

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

一、所用的硬件:

openmv4、正点原子的mini板(stm32f103rct6)、正点原子配套的lcd屏。

二、openmv端

直接上代码:

代码如下(示例):

mport sensor, image, time
from pyb import UART

uart = UART(3, 115200)
sensor.reset()
sensor.set\_pixformat(sensor.RGB565)
sensor.set\_framesize(sensor.QQVGA) # can be QVGA on M7...
sensor.skip\_frames(30)
sensor.set\_auto\_gain(False) # must turn this off to prevent image washout...
while(True):
    img = sensor.snapshot()
    img.lens\_corr(1.8) # strength of 1.8 is good for the 2.8mm lens.
    for code in img.find\_qrcodes():
        print(code)
        FH= bytearray([0xb3,0xb3])
        uart.write(FH)
        uart.write(code.payload())
        FH = bytearray([0x0d,0x0a])
        uart.write(FH)
        time.sleep\_ms(1000)


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

注:
1、openmv4的 p4为TX p5为RX。(不要接错线哦)
2、FH为帧头用于检验数据发送是否正确。(不懂的可以结合32端代码理解)
3、 code.payload()函数记录的二维码内的字符。
4、波特率设置为115200(要和32端保持一致)。
5、关于二维码识别的详细代码可以去openmv官网查找。

2.stm32端

main.c:

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "lcd.h"


 int main(void)
 {		
 	u8 len;
	u8 t,n;
	u8 UsartDisPlay[200];
	uart\_init(115200);
	 delay\_init();
	 LCD\_Init();
	POINT_COLOR=RED; 
while(1)
{
   if(USART_RX_STA&0x8000)
   {
       len=USART_RX_STA&0x3fff;
		 for(t=0;t<len;t++)
		  { if(USART_RX_BUF[t]==0xb3)
				 if(USART_RX_BUF[t]==0xb3) n=t+1;
			}
			for(t=0;n<len;t++,n++)
			{UsartDisPlay[t]=USART_RX_BUF[n];
				delay\_ms(3000);
			 }
			USART_RX_STA=0;
    }
	 
LCD\_ShowString(15,50,260,16,16,UsartDisPlay);
	
}	
	  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

usart1配置:

void uart\_init(u32 bound){
  //GPIO端口设置
  GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	 
	RCC\_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);	//使能USART1,GPIOA时钟
  
	//USART1\_TX GPIOA.9
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;	//复用推挽输出
  GPIO\_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9
   
  //USART1\_RX GPIOA.10初始化
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
  GPIO\_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10 

  //Usart1 NVIC 配置
  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;		//子优先级3
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//IRQ通道使能
	NVIC\_Init(&NVIC_InitStructure);	//根据指定的参数初始化VIC寄存器
  
   //USART 初始化设置

	USART_InitStructure.USART_BaudRate = bound;//串口波特率
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
	USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
	USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;	//收发模式

  USART\_Init(USART1, &USART_InitStructure); //初始化串口1
  USART\_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断
  USART\_Cmd(USART1, ENABLE);                    //使能串口1 

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

中断函数:

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

%以上物联网嵌入式知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/873132
推荐阅读
相关标签
  

闽ICP备14008679号