• 星瞳AI VISION软件内测!可以离线标注,训练,并生成OpenMV的模型。可以替代edge impulse https://forum.singtown.com/topic/8206
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 如何使用openmv实现pwm输入捕获功能,进行占空比和周期的测量?



    • 如何使用openmv实现pwm输入捕获功能,进行占空比和周期的测量?
      求程序代码,联系方式 企鹅758978342 必有重谢





    • 我需要一个完整例程代码,STM32板级芯片复杂,不知道如何用它完整的实现读入PWM波和测量占空比的过程,查阅了大量资料,你们的相关教程只有输出的没有读入的。你的回答只是提供一个函数,没有说明它的使用条件,并且关于函数的参数和用法介绍也是相当的敷衍。
      希望您提供一个完整的历程代码以供参考。



    • @kidswong999
      0_1666946327278_a57e115f-dba3-44a0-8f33-3daea8064b9d-image.png
      Pin.board.X4 这在板子上应该连接哪个引脚?

      下面这段函数的作用是什么?为什么PW要进行计算后在传回给函数?
      0_1666946293614_e0ad62aa-0b38-473b-8e19-64ece5b89e50-image.png



    • 那个IC的例子我跑不起来,所以我重新写了一个OpenMV可以用的。

      原理:利用引脚边沿中断,计算时间。
      用杜邦线把P7和P8连起来,P7生成PWM脉冲,P8读取PWM脉冲

      import micropython
      micropython.alloc_emergency_exception_buf(100)
      
      from pyb import Pin, Timer, ExtInt
      import pyb
      
      t4 = Timer(4, freq=1000) # Frequency in Hz
      pwm_gen = t4.channel(1, Timer.PWM, pin=Pin("P7"), pulse_width_percent=10)
      
      
      high_start = 0
      high_end = 0
      pulse_high_width = 0
      pulse_low_width = 0
      
      pin_read = Pin('P8')
      
      def cb(tim):
          global high_start
          global high_end
          global pulse_high_width
          global pulse_low_width
          # Read the GPIO pin to figure out if this was a rising or falling edge
          if pin_read.value():
              # Rising edge - start of the pulse
              high_start = pyb.micros()
              pulse_low_width = high_start - high_end
          else:
              # Falling edge - end of the pulse
              high_end = pyb.micros()
              pulse_high_width = high_end - high_start
              
              
      ext = ExtInt(pin_read, ExtInt.IRQ_RISING_FALLING, Pin.PULL_NONE, cb)
      
      while True:
          pyb.delay(200)
          print(", pulse_high_width = %d, pulse_low_width = %d" % ( pulse_high_width, pulse_low_width))
      


    • @kidswong999
      谢谢!