Multi-port UART DMA library to use with STM32 HAL (Can be used on F103, F407, F446, H750, H7B0, etc.) Can be modified (through defines) to work on almost any stm32 series.
Video tutorial: https://youtu.be/ZlsmW7s1N10
How-to (Using STM32CubeIDE):
- Enable UARTS
- Enable "global interrupt" for each UART
- Enable DMA RX channel for each UART
- Set DMA RX channel mode to Circular for each UART
- Enable DMA TX channel for each UART
- Generate code
- Add UART_Init() for each uart (after HAL initialization functions, before main loop)
- Use UART_ComSelect() to select uart
- Use UART_Read() / UART_Write()
Hope this lib will solve all your UART problems.