1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00

stm32f0: fixed bug in uart implementation

alternate function register was written incorrectly for pin numbers > 8
+ cpu/stm32f0: fixed possible null-ptr deref
This commit is contained in:
Michael Zapf 2015-09-12 18:51:23 +02:00
parent 94c287c4c2
commit dfe5c273d1

View File

@ -122,16 +122,16 @@ int init_base(uart_t uart, uint32_t baudrate)
port->AFR[0] |= af << (rx_pin * 4);
}
else {
port->AFR[1] &= ~(0xf << ((rx_pin - 16) * 4));
port->AFR[1] |= af << ((rx_pin - 16) * 4);
port->AFR[1] &= ~(0xf << ((rx_pin - 8) * 4));
port->AFR[1] |= af << ((rx_pin - 8) * 4);
}
if (tx_pin < 8) {
port->AFR[0] &= ~(0xf << (tx_pin * 4));
port->AFR[0] |= af << (tx_pin * 4);
}
else {
port->AFR[1] &= ~(0xf << ((tx_pin - 16) * 4));
port->AFR[1] |= af << ((tx_pin - 16) * 4);
port->AFR[1] &= ~(0xf << ((tx_pin - 8) * 4));
port->AFR[1] |= af << ((tx_pin - 8) * 4);
}
/* configure UART to mode 8N1 with given baudrate */