openmv与32通信

看了您的openmv与stm32通信的文章,想问一下,openmv可以一次性发8位数据吗?可以的话,要配置哪些呢?

【相关推荐】



  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7556915
  • 这篇博客你也可以参考下:关于Openmv开发环境的搭建
  • 除此之外, 这篇博客: Openmv通过串口接收数据、发送数据与stm32通信中的 openmv传送数据 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    1、初始化以及uart参数设置

    uart = pyb.UART(3, 115200)  #串口3,波特率115200
    uart.init(115200, bits=8, parity=None, stop=1)  #8位数据位,无校验位,1位停止位
    

    2、将数据和帧头(一般来说是两个帧头)打包,发送打包好的数据
    关于函数的用法请见:

    https://docs.openmv.io/library/ustruct.html?highlight=ustruct

    ustruct.pack(fmt,v1,v2,… )
    根据格式字符串fmt打包值v1,v2 … 。返回值是对值进行编码的字节对象。

    fmt 参数意义
    在这里插入图片描述

    def send_data_packet(x, y):
        temp = struct.pack("<bbii",                #格式为俩个字符俩个整型
                       TITLE1,                       #帧头1
                       TITLE2,                       #帧头2
    	               int(x),                       #数据1
                       int(y))                       #数据2
        uart.write(temp)                           #串口发送
    

    可以根据自己的需求添加变量以及帧头。
    一帧数据的每一个Byte必须要以字节的显示发送(data = bytearray([x,y])),而不能是用16进制发送(uart.write(“%x %x \r”%(x,y))),他们两个函数在串口助手里面看到的内容是一样的(大小写的区别),但是后者是无法让单片机接收到的。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^