我正在为直流电机制作一个基于stm32的电机速度控制器。但是我不能从我的接收器上读取PWM,我也不能让我的MOSFET改变输出!我需要帮助,因为现在它只开或关!我使用的是RobotDyn BlackPill和STP36NF06L Mosfet。此外,我还将Arduino ide与STM板一起使用。代码:
int Motor = PA15;
int rc = PB1;
int s;
void setup() {
pinMode(Motor, OUTPUT);
pinMode(rc, INPUT);
digitalWrite(Motor, LOW);
}
void loop() {
if(s = (map(pulseIn(rc, HIGH), 1100, 1900, 0, 255)) > 200) {
digitalWrite(Motor, HIGH);
}
else{
digitalWrite(Motor, LOW);
}
delay(10);
}
如果您想读取外部PWM信号,您可以在输入捕获模式下使用计时器,这样一个通道在上升沿触发,另一个在下降沿触发,然后计算输入信号的周期以及频率和占空比。它在参考手册中有很好的记录,还有各种输入捕捉模式的例子,甚至YouTube教程。