usart.c now looks more like arms's usart.c