This follows the pattern of other peripherals (I2C, SPI) to specify the pins using pin objects instead of a pair of GPIO port and pin number. It makes it easier to customise the UART pins for a particular board.
changes include: * use single GPIO.BSRR instead of BSRRH and BSRRL * change HSE_STARTUP_TIMEOUT to 100 ms * define LSE_STARTUP_TIMEOUT to 5 s