Me gustaría determinar en el software si la señal de salida de PWM es alta o baja actualmente.
Por lo que sé, GPIO_ReadOutputDataBit (GPIOD, GPIO_Pin_12) no funciona con un pin GPIO configurado como función alternativa (AF).
Me gustaría determinar en el software si la señal de salida de PWM es alta o baja actualmente.
Por lo que sé, GPIO_ReadOutputDataBit (GPIOD, GPIO_Pin_12) no funciona con un pin GPIO configurado como función alternativa (AF).
Debe leer el registro de datos GPIO input aplicable, no el output . Solo cuando el pin esté configurado como una salida GPIO coincidirán.
El manual del programador explicará qué es el registro real; La documentación de cualquier biblioteca de IO o HAL que esté utilizando mostrará cómo leerla en un nivel superior.
También es probable que usted pueda leer el registro de conteo del temporizador relevante y compararlo con el valor de comparación de salida aplicable.
No puedo encontrar un lugar en la estructura de registro de temporizador para leer directamente OCxREF o OCx, pero puede que tengas suerte con esto:
Establezca una interrupción en la actualización y reinicie los eventos del temporizador y establezca una marca manualmente de esa manera.
Aunque el estado de salida puede reflejarse en el estado de entrada de GPIO, como lo menciona también Chris Stratton.