亚博k210视觉模块与stm32双向通信

05-28 1616阅读

记录一下在使用亚博k210视觉模块与stm32f103C8T6最小系统板进行双向串口通信的过程。

亚博k210视觉模块与stm32双向通信

参考过的文章: 

【K210模块】使用UART模块发送和接收数据_KevinGuo457的博客-CSDN博客

K210的串口_uart_a.write_飞鸟211的博客-CSDN博客

硬件连接:K210的RX,TX分别与STM32的串口1(也即是PA9,PA10)连接,CH340连接STM32的串口2(也即是PA3,PA2)连接

目的:①PC端通过串口助手发送数据给STM32,STM32再把数据传给K210。②K210发送数据给STM32,STM32通过串口发送给串口助手显示出来。

K210端代码:

from fpioa_manager import fm
from machine import UART
import time
import os
from board import board_info
from fpioa_manager import fm
import ubinascii
from machine import UART
from machine import Timer
# binding UART2 IO:6->RX, 8->TX
fm.register(6, fm.fpioa.UART2_RX)
fm.register(8, fm.fpioa.UART2_TX)
yb_uart = UART(UART.UART2, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)
write_bytes = b'$hello yahboom#\n' #模拟串口发送
last_time = time.ticks_ms()
try:
    while True:
        time.sleep_ms(1000)
        if time.ticks_ms() - last_time > 1000:  #验证发送,每1s发送一次
            last_time = time.ticks_ms()
            print("write_bytes = ", write_bytes) 
            yb_uart.write("Hello STM32\r\n")  
        #串口接收部分
        if yb_uart.any():      
            read_data = yb_uart.read()
            if read_data:   #接收到数据,打印并通过串口发送
                  print("read_data = ", read_data)
                  yb_uart.write(read_data)
except:
    pass
yb_uart.deinit()
del yb_uart

STM32端main.c:(工程在最后)

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "Serial.h"
uint8_t RxData;
uint8_t RxData1;
int main(void)
{
	Serial_init();     //与K210串口连接
	Serial_init2();   //与PC端通过CH340连接,验证串口通信是否正常
	Serial_printf("测试串口通信\r\n");
	while (1)
	{
        /*串口助手发送的数据STM32通过串口2接收到,再通过串口1发送给K210.
        K210发送数据,STM32通过串口1接收到,再通过串口2发送给串口助手显示*/
		if (Serial_GetRXFlag2() == 1)  //串口2接收
		{
			RxData = Serial_GetRXData2();
			Serial_SendByte(RxData);  //数据通过串口1发送出去
		}
		else if (Serial_GetRXFlag() == 1)//串口1接收
		{
			RxData1 = Serial_GetRXData();  
			Serial_SendByte2(RxData1);  //数据通过串口2发送
		}
	}
}

演示结果:

①每隔1s终端以及串口助手收到消息并显示

亚博k210视觉模块与stm32双向通信

②通过串口助手发送123,K210收到数据并显示

亚博k210视觉模块与stm32双向通信

需要注意的点:

这里如果想要指定K210接收的数据,判断条件不能直接用==(原因参考上面的链接2,关于k210通信协议的规定)

示例:亚博k210视觉模块与stm32双向通信

最后,用到的STM32代码工程:链接:https://pan.baidu.com/s/1XE36snBNJPciFRB0k57X0g?pwd=8cnl 

提取码:8cnl

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]