OpenMv和STM32通信
OpenMv和STM32通信问题
前言
最近一段时间都在捣鼓OpenMV和Stm32的通信问题,刚开始不知道哪里出了问题,一直通信失败,明明使用TTL串口接收OpenMv发送的数据是可以在串口调试助手上显示的,但就是无法发给Stm32的USART串口。经过了差不多一周的时间,终于解决了。于是在这里记录学习记录。
一、OpenMv配置
1.第一种发送方法
OpenMv代码如下
# Untitled - By: 86188 - 周二 5月 25 2021
import sensor, image, time,pyb
from pyb import UART,LED
import json
import ustruct
#white_threshold_01 = ((95, 100, -18, 3, -8, 4)); #白色阈值
red_threshold_01 = ((2, 51, 11, 127, -128, 127)) #红色阈值
LED_R = pyb.LED(1) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
LED_G = pyb.LED(2)
LED_B = pyb.LED(3)
LED_R.on()
LED_G.on()
LED_B.on()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
sensor.set_auto_gain(False) # must be turned off for color tracking
sensor.set_auto_whitebal(False) # must be turned off for color tracking
clock = time.clock()
LED_R.off()
LED_G.off()
LED_B.off()
uart = UART(3,115200) #定义串口3变量
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters
def find_max(blobs): #定义寻找色块面积最大的函数
max_size=0
for blob in blobs:
if blob.pixels() > max_size:
max_blob=blob
max_size = blob.pixels()
return max_blob
def send_data_packet(x,y,z,w):
temp = ustruct.pack("<bbhhhh"

本文详细讲述了如何解决OpenMV与STM32之间的通信问题,涉及两种数据发送方法:包格式发送和校验位计算。重点在于理解OpenMV的发送结构、Stm32的USART接收中断配置以及数据格式转换技巧。
最低0.47元/天 解锁文章
2807

被折叠的 条评论
为什么被折叠?



