usart: stm32l4 change.

This commit is contained in:
NIIBE Yutaka
2019-04-25 17:02:57 +09:00
parent 3199ac7aae
commit fe1ca5f055
2 changed files with 20 additions and 4 deletions

View File

@@ -5,6 +5,7 @@
* contrib/usart-stm32f103.c (usart_config_baud): Rename
from usart_config_brr, changing API.
* contrib/usart-stm32l4.c (usart_config_baud): Likewise.
2019-04-24 NIIBE Yutaka <gniibe@fsij.org>

View File

@@ -130,19 +130,34 @@ static const struct brr_setting brr_table[] = {
{ B230400, 174 },
{ B460800, 87 },
{ B921600, 43 },
{ BSCARD, 3719 },
{ BSCARD1, 3720 },
{ BSCARD2, 1860 },
{ BSCARD4, 930 },
{ BSCARD8, 465 },
{ BSCARD12, 310 },
{ BSCARD16, 233 },
{ BSCARD20, 186 },
};
void
usart_config_brr (uint8_t dev_no, uint16_t brr_value)
int
usart_config_baud (uint8_t dev_no, uint8_t baud_spec)
{
struct USART *USARTx = get_usart_dev (dev_no);
uint32_t save_bits;
int i;
for (i = 0; i < NUM_BAUD; i++)
if (brr_table[i].baud_spec == baud_spec)
break;
if (i >= NUM_BAUD)
return -1;
save_bits = USARTx->CR1 & (USART_CR1_TE | USART_CR1_RE);
USARTx->CR1 &= ~(USART_CR1_TE | USART_CR1_RE | USART_CR1_UE);
USARTx->BRR = brr_value;
USARTx->BRR = brr_table[i].brr_value;
USARTx->CR1 |= (save_bits | USART_CR1_UE);
return 0;
}
/* XXX: not sure if needed */