Me gustaría saber si es posible reasignar un solo pin de un periférico multi-pin (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 reasignar solo un pin y no todo el periférico?
Me gustaría usar las bibliotecas HAL para configurar, si es posible.
En general: consulte el manual de referencia. Algunos periféricos se pueden reasignar 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 asignación AFIO ( SPI3_REMAP
in 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 reasignar el periférico Ethernet.
máximo
Sam