mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #379 from bcostm/dev_nucleos_serial
[NUCLEOs] Add Serial Rx only and TX only modes + 8-bit data as defaultpull/381/head
commit
176e0fa9d8
|
|
@ -71,7 +71,15 @@ static void init_usart(serial_t *obj) {
|
||||||
USART_InitStructure.USART_StopBits = obj->stopbits;
|
USART_InitStructure.USART_StopBits = obj->stopbits;
|
||||||
USART_InitStructure.USART_Parity = obj->parity;
|
USART_InitStructure.USART_Parity = obj->parity;
|
||||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
|
||||||
|
if (obj->pin_rx == NC) {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Tx;
|
||||||
|
} else if (obj->pin_tx == NC) {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Rx;
|
||||||
|
} else {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
|
||||||
|
}
|
||||||
|
|
||||||
USART_Init(usart, &USART_InitStructure);
|
USART_Init(usart, &USART_InitStructure);
|
||||||
|
|
||||||
USART_Cmd(usart, ENABLE);
|
USART_Cmd(usart, ENABLE);
|
||||||
|
|
@ -147,10 +155,10 @@ void serial_baud(serial_t *obj, int baudrate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||||
if (data_bits == 8) {
|
if (data_bits == 9) {
|
||||||
obj->databits = USART_WordLength_8b;
|
|
||||||
} else {
|
|
||||||
obj->databits = USART_WordLength_9b;
|
obj->databits = USART_WordLength_9b;
|
||||||
|
} else {
|
||||||
|
obj->databits = USART_WordLength_8b;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (parity) {
|
switch (parity) {
|
||||||
|
|
|
||||||
|
|
@ -181,10 +181,10 @@ void serial_baud(serial_t *obj, int baudrate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||||
if (data_bits == 8) {
|
if (data_bits == 9) {
|
||||||
obj->databits = UART_WORDLENGTH_8B;
|
|
||||||
} else {
|
|
||||||
obj->databits = UART_WORDLENGTH_9B;
|
obj->databits = UART_WORDLENGTH_9B;
|
||||||
|
} else {
|
||||||
|
obj->databits = UART_WORDLENGTH_8B;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (parity) {
|
switch (parity) {
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,15 @@ static void init_usart(serial_t *obj) {
|
||||||
USART_InitStructure.USART_StopBits = obj->stopbits;
|
USART_InitStructure.USART_StopBits = obj->stopbits;
|
||||||
USART_InitStructure.USART_Parity = obj->parity;
|
USART_InitStructure.USART_Parity = obj->parity;
|
||||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
|
||||||
|
if (obj->pin_rx == NC) {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Tx;
|
||||||
|
} else if (obj->pin_tx == NC) {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Rx;
|
||||||
|
} else {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
|
||||||
|
}
|
||||||
|
|
||||||
USART_Init(usart, &USART_InitStructure);
|
USART_Init(usart, &USART_InitStructure);
|
||||||
|
|
||||||
USART_Cmd(usart, ENABLE);
|
USART_Cmd(usart, ENABLE);
|
||||||
|
|
@ -156,10 +164,10 @@ void serial_baud(serial_t *obj, int baudrate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||||
if (data_bits == 8) {
|
if (data_bits == 9) {
|
||||||
obj->databits = USART_WordLength_8b;
|
|
||||||
} else {
|
|
||||||
obj->databits = USART_WordLength_9b;
|
obj->databits = USART_WordLength_9b;
|
||||||
|
} else {
|
||||||
|
obj->databits = USART_WordLength_8b;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (parity) {
|
switch (parity) {
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,15 @@ static void init_usart(serial_t *obj) {
|
||||||
USART_InitStructure.USART_StopBits = obj->stopbits;
|
USART_InitStructure.USART_StopBits = obj->stopbits;
|
||||||
USART_InitStructure.USART_Parity = obj->parity;
|
USART_InitStructure.USART_Parity = obj->parity;
|
||||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
|
||||||
|
if (obj->pin_rx == NC) {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Tx;
|
||||||
|
} else if (obj->pin_tx == NC) {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Rx;
|
||||||
|
} else {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
|
||||||
|
}
|
||||||
|
|
||||||
USART_Init(usart, &USART_InitStructure);
|
USART_Init(usart, &USART_InitStructure);
|
||||||
|
|
||||||
USART_Cmd(usart, ENABLE);
|
USART_Cmd(usart, ENABLE);
|
||||||
|
|
@ -167,10 +175,10 @@ void serial_baud(serial_t *obj, int baudrate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||||
if (data_bits == 8) {
|
if (data_bits == 9) {
|
||||||
obj->databits = USART_WordLength_8b;
|
|
||||||
} else {
|
|
||||||
obj->databits = USART_WordLength_9b;
|
obj->databits = USART_WordLength_9b;
|
||||||
|
} else {
|
||||||
|
obj->databits = USART_WordLength_8b;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (parity) {
|
switch (parity) {
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,14 @@ static void init_uart(serial_t *obj) {
|
||||||
UartHandle.Init.StopBits = obj->stopbits;
|
UartHandle.Init.StopBits = obj->stopbits;
|
||||||
UartHandle.Init.Parity = obj->parity;
|
UartHandle.Init.Parity = obj->parity;
|
||||||
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||||
|
|
||||||
|
if (obj->pin_rx == NC) {
|
||||||
|
UartHandle.Init.Mode = UART_MODE_TX;
|
||||||
|
} else if (obj->pin_tx == NC) {
|
||||||
|
UartHandle.Init.Mode = UART_MODE_RX;
|
||||||
|
} else {
|
||||||
UartHandle.Init.Mode = UART_MODE_TX_RX;
|
UartHandle.Init.Mode = UART_MODE_TX_RX;
|
||||||
|
}
|
||||||
|
|
||||||
HAL_UART_Init(&UartHandle);
|
HAL_UART_Init(&UartHandle);
|
||||||
}
|
}
|
||||||
|
|
@ -157,10 +164,10 @@ void serial_baud(serial_t *obj, int baudrate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||||
if (data_bits == 8) {
|
if (data_bits == 9) {
|
||||||
obj->databits = UART_WORDLENGTH_8B;
|
|
||||||
} else {
|
|
||||||
obj->databits = UART_WORDLENGTH_9B;
|
obj->databits = UART_WORDLENGTH_9B;
|
||||||
|
} else {
|
||||||
|
obj->databits = UART_WORDLENGTH_8B;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (parity) {
|
switch (parity) {
|
||||||
|
|
|
||||||
|
|
@ -175,10 +175,10 @@ void serial_baud(serial_t *obj, int baudrate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||||
if (data_bits == 8) {
|
if (data_bits == 9) {
|
||||||
obj->databits = UART_WORDLENGTH_8B;
|
|
||||||
} else {
|
|
||||||
obj->databits = UART_WORDLENGTH_9B;
|
obj->databits = UART_WORDLENGTH_9B;
|
||||||
|
} else {
|
||||||
|
obj->databits = UART_WORDLENGTH_8B;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (parity) {
|
switch (parity) {
|
||||||
|
|
@ -303,7 +303,7 @@ int serial_getc(serial_t *obj) {
|
||||||
void serial_putc(serial_t *obj, int c) {
|
void serial_putc(serial_t *obj, int c) {
|
||||||
USART_TypeDef *uart = (USART_TypeDef *)(obj->uart);
|
USART_TypeDef *uart = (USART_TypeDef *)(obj->uart);
|
||||||
while (!serial_writable(obj));
|
while (!serial_writable(obj));
|
||||||
uart->TDR = (uint32_t)(c & 0xFF);
|
uart->TDR = (uint16_t)(c & 0xFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
int serial_readable(serial_t *obj) {
|
int serial_readable(serial_t *obj) {
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,15 @@ static void init_usart(serial_t *obj) {
|
||||||
USART_InitStructure.USART_StopBits = obj->stopbits;
|
USART_InitStructure.USART_StopBits = obj->stopbits;
|
||||||
USART_InitStructure.USART_Parity = obj->parity;
|
USART_InitStructure.USART_Parity = obj->parity;
|
||||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
|
||||||
|
if (obj->pin_rx == NC) {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Tx;
|
||||||
|
} else if (obj->pin_tx == NC) {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Rx;
|
||||||
|
} else {
|
||||||
|
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
|
||||||
|
}
|
||||||
|
|
||||||
USART_Init(usart, &USART_InitStructure);
|
USART_Init(usart, &USART_InitStructure);
|
||||||
|
|
||||||
USART_Cmd(usart, ENABLE);
|
USART_Cmd(usart, ENABLE);
|
||||||
|
|
@ -180,10 +188,10 @@ void serial_baud(serial_t *obj, int baudrate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||||
if (data_bits == 8) {
|
if (data_bits == 9) {
|
||||||
obj->databits = USART_WordLength_8b;
|
|
||||||
} else {
|
|
||||||
obj->databits = USART_WordLength_9b;
|
obj->databits = USART_WordLength_9b;
|
||||||
|
} else {
|
||||||
|
obj->databits = USART_WordLength_8b;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (parity) {
|
switch (parity) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue