STM32 HAL SPI Reasignar un solo pin

1

¿Me gustaría saber si es posible volver a asignar un solo pin de un periférico de varios pines (SPI)?

Por ejemplo, tengo un STM32F107 y quiero usar UART4, SPI3 y Ethernet.

PC10 = UART4_TX - Función de reasignación = SPI3_SCK

PC11 = UART4_RX - Función de reasignación = SPI3_MISO

PC12 = UART5_TX - Función de reasignación = SPI3_MOSI

PB3 = SPI3_SCK

PB4 = SPI3_MISO

PB5 = Ethernet o SPI3_MOSI - Tengo que usar Ethernet.

Lo que quiero hacer es usar PC12, PB3 y PB4 para SPI3, y luego usar PC10 y PC11 para UART4.

¿Está permitido volver a asignar un pin y no todo el periférico?

Me gustaría usar las bibliotecas HAL para configurar, si es posible.

    
pregunta AJBotha

1 respuesta

2

En general: consulte el manual de referencia. Algunos periféricos se pueden remapear parcialmente de varias maneras diferentes; otros no pueden.

En este caso específico: no. La reasignación del periférico SPI3 se controla mediante un solo bit en el registro de mapeo AFIO ( SPI3_REMAP en AFIO_MAPR ); No hay manera de hacerlo parcialmente. Si es posible, puede considerar usar diferentes periféricos SPI y / o UART, o usar un expansor de E / S para reducir la cantidad de periféricos que necesita. Otra opción puede ser volver a asignar el periférico de Ethernet.

    
respondido por el duskwuff

Lea otras preguntas en las etiquetas