• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 为什么openmv串口接收大量数据时会报错?



    • uart = UART(1, 38400, timeout_char=1000)
      uart.init(38400, bits=8, parity=None, stop=1, timeout_char=1000)
      clock = time.clock()
      
      def getImagefrom32(Imagelen,times):
          count = 0
          print("This is getImagefrom32")
          Imagedata=''
          sendimage=[0x73,0x65,0x6E,0x64,0x69,0x6D,0x61,0x67,0x65,0x0d,0x0a]
          uart.write(bytearray(sendimage))
          time.sleep_ms(20)
          while(True):
              if uart.any():
                  for i in range(times):
                      if (i+1) !=times:
                          re_data=uart.read(40)
                          for i in range(0, len(re_data)):  
                              Imagedata = Imagedata + (hex(int(re_data[i]))).upper()[2:]
                          count = count+1
                          print("count= ",count,"len of Imagedata= ",len(Imagedata)/2)
                      else :
                          number = Imagelen-40*i
                          re_data=uart.read(number)
                          for i in range(0, len(re_data)):  
                              Imagedata = Imagedata + (hex(int(re_data[i]))).upper()[2:]
                          count = count+1
                          print("count= ",count)
                  break
      
          print("len of Imagedata: ",len(Imagedata))
      ![0_1679385633651_联想截图_20230321160026.png](https://fcdn.singtown.com/dddaefcf-90d9-4f94-b529-3e539446c636.png) 
      
      代码比较多,这里放最关键的一个函数。这个函数是让32发送一个JPEG图片的数据包到OPENMV,这个函数得到的参数Imagelen是JPEG图片数据流的字节数,times是我根据每次读40个字节,计算出来总共要读的次数。当32发送320*240图片,字节数大概在5000左右,如果波特率是9600或者19200,OPENMV可以收到,如果波特率增大,或者发送的图片变成640*480,图中while函数里面的for i in range(0, len(re_data)):  就会报错,说我的re_data没有长度,请问这是什么原因?
      


    • 代码比较多,这里放最关键的一个函数。这个函数是让32发送一个JPEG图片的数据包到OPENMV,这个函数得到的参数Imagelen是JPEG图片数据流的字节数,times是我根据每次读40个字节,计算出来总共要读的次数。当32发送320240图片,字节数大概在5000左右,如果波特率是9600或者19200,OPENMV可以收到,如果波特率增大,或者发送的图片变成640480,图中while函数里面的for i in range(0, len(re_data)): 就会报错,说我的re_data没有长度,请问这是什么原因?



    • 0_1679385878525_联想截图_20230321160026.png