在STM32F407中读取PWM信号

时间:2017-05-11 11:51:51

标签: stm32 stm32f4discovery drone stm32f4

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

1 个答案:

答案 0 :(得分:0)

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

一般方法

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

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