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:
- 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 !!
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:
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 !!