在STM32F407中读取PWM信号

Reading PWM signals in STM32F407

我正在使用 STM32F407 发现做一个四轴飞行器。我终于能够稳定它。现在我正在尝试使用 RC 接收器,这样我就可以控制四轴飞行器的运动。有没有办法读取我的 RC 接收器通道的 PWM 信号?? 我的 RC 接收器也支持 PPM,据我所知,它会收到一包占空比强文本,但仍然不知道如何接收。

您可以使用 SPI 接口对 RC 接收器的 PPM(或 PWM)信号进行编码。

一般做法:

  • 将 PPM 信号连接到 MISO 引脚和控制器的第二个引脚(同时)。不需要 MOSI、CLK 和 CS 引脚。
  • 用合适的时钟初始化SPI接口。使用此频率,信号将在控制器中移动。尝试使用 4kHz。
  • 根据信号的空闲状态,在第二个引脚上启用上升沿或下降沿中断触发器。这将用于触发传入帧。
  • 如果中断发生临时禁用触发器并开始spi传输以获取几个字节(传出ingored和未连接)。根据帧长度,8 或 10 字节应该可以做到。这将捕获长达 20 毫秒的帧。
  • 获得所有字节后,再次启用触发器并重复下一帧。

接收到的数据应包含 pwm/ppm 信号的模式。 您还应该将采样率和要接收的字节数与您的 RC 接收器相匹配。