Usar pines D0 y D1 como PWMs

07 Aug 2018

Buenas tardes, me gustaría saber como podría utilizar los pines D0 y D1 de mi placa NUCLEO STM32-F401RE como PWMs, porque por defecto viene como puerto de comunicación virtual STLink. Lo cambiaría por el UART6 , PC_6 (UART6_TX) y PA_12 (UART_RX).

He leído que hay que cerrar el SB62 / SB63 y abrir los puentes de soldadura SB13 / SB14 de la placa y lo he hecho, pero sigue sin funcionarme, puede ser que tenga que cambiar algo de la configuración de mbed, pero no sé el qué.

Os adjunto el código que tengo con el que hago mis pruebas:

  1. include "mbed.h"

PwmOut servo(PA_3);

Serial my_serial(PC_6, PA_12);

int main() {

servo.period_us(20000);

int servopulsewidth=1500;

int pata_si = 1200;

int pata_no = 1900;

bool mov = false;

servo.pulsewidth_us(servopulsewidth);

while(1){

if(mov == true){

servo.pulsewidth_us(pata_si);

my_serial.printf("Hello!\n", servo.read());

}else{

servo.pulsewidth_us(pata_no);

}

mov = !mov;

wait_ms(250);

} }

Espero que puedan ayudarme.

Gracias !!

08 Aug 2018

Please use the <<code>> and <</code>> tags on separate lines around your posted code to keep it readable.

The platform page for the F401 shows that D0,D1 do not support PWM. There are no purple labels on these pins. So even after modifying the solderbridges the PWM function is not available (unless you use a software generated PWM).

Also note that by changing the solderbridges you can no longer use the default serial port to the host PC. Your printf() will not show up on hyperterm or putty unless you connect your own serial-to-USB converter or some other serial console on (PC_6, PA_12).

08 Aug 2018

Buenas de nuevo, ¿cómo puedo generar un PWM por software? ¿Me podrias poner un ejemplo o indicarme alguno que haya? Es que soy nuevo en esto y a ver si podrían ayudarme.

Lo que querría hacer es el pin D0 por ejemplo ponerlo como PWM.¿como se podría hacer?

Gracias.

10 Aug 2018

Esta libreria quizas te pueda servir

https://os.mbed.com/users/komaida424/code/SoftPWM/

Las librerias se buscan con la opcion de Import para importarlas en el proyecto.

10 Aug 2018

There are several softPWM libs. You can do a search on the mbed site. I assume you need more PWMs than already available on the regular pins. In case you need better performance than available by a softPWM then you might want to look at external PWM hardware as well.