记录一下在使用亚博k210视觉模块与stm32f103C8T6最小系统板进行双向串口通信的过程。
参考过的文章:
【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终端以及串口助手收到消息并显示
文章来源:https://www.toymoban.com/news/detail-855949.html
②通过串口助手发送123,K210收到数据并显示
文章来源地址https://www.toymoban.com/news/detail-855949.html
需要注意的点:
这里如果想要指定K210接收的数据,判断条件不能直接用==(原因参考上面的链接2,关于k210通信协议的规定)
示例:
最后,用到的STM32代码工程:链接:https://pan.baidu.com/s/1XE36snBNJPciFRB0k57X0g?pwd=8cnl 提取码:8cnl
到了这里,关于亚博k210视觉模块与stm32双向通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!