我用的STM32F103ZET6上面有5个串口,但有6个模块需要通过串口和芯片通信。
现打算将USART2分时映射到不同的GPIO引脚上面,来达到扩展串口的目的。
某一时间段内:
PD5 ------> USART2_TX
PD6 ------> USART2_RX
另一时间内:
PA2 ------> USART2_TX
PA3 ------> USART2_RX
不知这种方法从原理上是否可行?
我测试了以下两种实现方式均没有成功。
1. 切换时先通过 HAL_UART_DeInit(&huart2) 关掉串口2,然后用 MX_USART2_UART_Init() 初始化。
2. 什么都不做,直接把之前的 GPIO 通过 HAL_GPIO_DeInit(GPIOx, GPIO_PIN_a|GPIO_PIN_b); 接触映射,q然后将新的 GPIO 通过 HAL_GPIO_Init() 映射做为串口2的 TX 和 RX.
望遇到过类似问题的朋友指点迷津,谢谢啦! |
临时工不好用