星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • STM32与OPenmv之间通信,二者单独运行可以,连在一起没现象啊,求大佬指点?



    •  import sensor, image,time
      import json
      from pyb import UART
      
      
      sensor.reset()
      
      sensor.set_pixformat(sensor.RGB565)
      
      sensor.set_framesize(sensor.QVGA)
      
      sensor.skip_frames(time = 2000)
      
      sensor.set_auto_gain(False) # must turn this off to prevent image washout...
      
      clock = time.clock()
      
      uart = UART(3, 115200)
      
      #uart.init(19200, bits=8, parity=None, stop=1)  #8位数据位,无校验位,1位停止位
      
      while(True):
      
          clock.tick()
      
          img = sensor.snapshot()
      
          img.lens_corr(1.8) # strength of 1.8 is good for the 2.8mm lens.
      
          for code in img.find_qrcodes():
      
              img.draw_rectangle(code.rect(), color = (255, 0, 0))
              message = code.payload()
              uart.write(message)
              print(code)
          else:
              print("not found!")
      #if message == "abc" :
      #    num = 1
      #    uart.write(num)
      #    print(message)
      #       time.sleep(1000)
      #if message == "def" :
      #    uart.write('2')
       #   time.sleep(1000)
      
      
      ```stm32代码
      void LED_RED(void)
      {
        GPIO_InitTypeDef  GPIO_InitStructure;
      	 
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);	    //使能PB,PE端口时钟
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;			    //LED0-->PB.5 端口配置
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 	 //推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	 //IO口速度为50MHz
        GPIO_Init(GPIOE, &GPIO_InitStructure);	  	       //初始化GPIO
        GPIO_SetBits(GPIOB,GPIO_Pin_5); 			 //PE.5 输出高 	  
        GPIO_ResetBits(GPIOB,GPIO_Pin_5);
      }
      
      void USART1_IRQHandler(void)
      { 
      	u8 res;
      	if(USART_GetITStatus(USART1,USART_IT_RXNE))
      { 
      			
      	  res= USART_ReceiveData(USART1); 
            USART_SendData(USART1,res);     //huan hang 
      		    
      			
         	     if(res=='1')
      			{
      	     res='a';
               USART_SendData(USART1,res);
      	 	 LED_RED();  //liang
      		 Delay(5000000);  
      			}
      		  if(res=='2')
      			{
      	     res='b';
               USART_SendData(USART1,res);
      	    LED_CLOSE(); //mie
      		Delay(5000000);
      			}
      //	     if(res=='3')
      //			{
      //	     res='c';
      //         USART_SendData(USART1,res);
      //			}
      		
      }
      	
      	
      	
      	
      
       }
       int main(void)
       {	
      	 LED_CLOSE();
           NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
      	 My_USART1_Init();
      	 USART1_IRQHandler();
      	 
      	 LED_CLOSE();
      	 while(1);
      	 
       }


    • 先用TTL转串口模块,或者串口调试扩展板调试,看看串口助手里有没有数据。



    • 可能是线没连好,或者代码写错了,都有可能。



    • @kidswong999 串口里面是有数据的



    • @kidswong999 是stm32的接受协议错了吗??



    • 你说二者单独运行可以,请提供“可以”的截图,比如串口助手的截图。