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

2024-05-28 1621阅读

记录一下在使用亚博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购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]