OpenMV与单片机串口通信交互

示例器件:

  • OpenMV
  • 英飞凌TC264单片机

简介

  • OpenMV与TC264虽然都可以作为单独的微控制器来使用,但OpenMV是集成了摄像头的控制器,专门用于摄像头识别等作用,涉及到大量运算时,其性能、内存自然就不太够看
  • 而单片机其多用于控制、计算、通信等功能,性能优秀,内存充足
  • 所以一般使用OpenMV和单片机搭配使用,OpenMV识别,通过串口将信息传给单片机,单片机依靠强大的性能进行运算

采用串口通信

串口通信想必大家都知道,这里就不多赘述了,如果有不了解的可以看我的往期文章【STM32】HAL库 CubeMX例程三—串口中断通信(2)(附工程源码)

一、 OpenMV

首先找到OpenMV的串口(图:星瞳科技)
OpenMV与单片机串口通信交互_第1张图片

  • P4(Tx):发送端
  • P5(Rx):接收端

接着打开OpenMV IDE,写入代码

from pyb import UART
uart = UART(3, 19200)

#发送Hello World!
while(True):
    uart.write("Hello World!\r")

二、 TC264

  • P14_0(Tx):发送端
  • P14_1(Rx):接收端

写入以下代码

uint8 uart_buff;

int core0_main(void)
{
     
	get_clk();//获取时钟频率  务必保留
	//用户在此处调用各种初始化函数等
	gpio_init(P20_8,GPO,0,PULLUP);//初始化灯,亮
    uart_init(UART_0, 19200, UART0_TX_P14_0, UART0_RX_P14_1);     //初始化串口

	IfxCpu_emitEvent(&g_cpuSyncEvent);
	IfxCpu_waitEvent(&g_cpuSyncEvent, 0xFFFF);
	enableInterrupts();
	
	while (TRUE)
	{
     
	    if(uart_query(UART_0, &uart_buff))
	    {
     
	    	//如果从串口收到“Hello World!”,将灯关闭
	        if(uart_buff == 'Hello World!')
	        {
     
	            gpio_set(P20_8,1);
	        }

	    }

    }

}

将单片机与OpenMV连线

  • P14_0(Tx)——P5(Rx)
  • P14_1(Rx)——P4(Tx)

运行如下

当OpenMV烧录代码后,立即发送了“Hello World!”,单片机接收到“Hello World!”,立即将灯关闭

OpenMV与单片机串口通信交互_第2张图片

你可能感兴趣的:(嵌入式,单片机,交互,stm32)