100 lines
1.9 KiB
C
100 lines
1.9 KiB
C
|
#include "platform.h"
|
||
|
#include "driver/uart.h"
|
||
|
|
||
|
int platform_init (void)
|
||
|
{
|
||
|
return PLATFORM_OK;
|
||
|
}
|
||
|
|
||
|
// ****************************************************************************
|
||
|
// UART
|
||
|
|
||
|
uint32_t platform_uart_setup( unsigned id, uint32_t baud, int databits, int parity, int stopbits )
|
||
|
{
|
||
|
UART_ConfigTypeDef cfg;
|
||
|
switch( baud )
|
||
|
{
|
||
|
case BIT_RATE_300:
|
||
|
case BIT_RATE_600:
|
||
|
case BIT_RATE_1200:
|
||
|
case BIT_RATE_2400:
|
||
|
case BIT_RATE_4800:
|
||
|
case BIT_RATE_9600:
|
||
|
case BIT_RATE_19200:
|
||
|
case BIT_RATE_38400:
|
||
|
case BIT_RATE_57600:
|
||
|
case BIT_RATE_74880:
|
||
|
case BIT_RATE_115200:
|
||
|
case BIT_RATE_230400:
|
||
|
case BIT_RATE_460800:
|
||
|
case BIT_RATE_921600:
|
||
|
case BIT_RATE_1843200:
|
||
|
case BIT_RATE_3686400:
|
||
|
cfg.baud_rate = baud;
|
||
|
break;
|
||
|
default:
|
||
|
cfg.baud_rate = BIT_RATE_9600;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
switch( databits )
|
||
|
{
|
||
|
case 5:
|
||
|
cfg.data_bits = UART_WordLength_5b;
|
||
|
break;
|
||
|
case 6:
|
||
|
cfg.data_bits = UART_WordLength_6b;
|
||
|
break;
|
||
|
case 7:
|
||
|
cfg.data_bits = UART_WordLength_7b;
|
||
|
break;
|
||
|
case 8:
|
||
|
default:
|
||
|
cfg.data_bits = UART_WordLength_8b;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
switch (stopbits)
|
||
|
{
|
||
|
case PLATFORM_UART_STOPBITS_1_5:
|
||
|
cfg.stop_bits = USART_StopBits_1_5;
|
||
|
break;
|
||
|
case PLATFORM_UART_STOPBITS_2:
|
||
|
cfg.stop_bits = USART_StopBits_2;
|
||
|
break;
|
||
|
default:
|
||
|
cfg.stop_bits = USART_StopBits_1;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
switch (parity)
|
||
|
{
|
||
|
case PLATFORM_UART_PARITY_EVEN:
|
||
|
cfg.parity = USART_Parity_Even;
|
||
|
break;
|
||
|
case PLATFORM_UART_PARITY_ODD:
|
||
|
cfg.parity = USART_Parity_Odd;
|
||
|
break;
|
||
|
default:
|
||
|
cfg.parity = USART_Parity_None;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
UART_ParamConfig (id, &cfg);
|
||
|
return baud;
|
||
|
}
|
||
|
|
||
|
|
||
|
// if set=1, then alternate serial output pins are used. (15=rx, 13=tx)
|
||
|
void platform_uart_alt( int set )
|
||
|
{
|
||
|
uart0_alt( set );
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
void platform_uart_send( unsigned id, uint8_t data )
|
||
|
{
|
||
|
uart_tx_one_char(id, data);
|
||
|
}
|