mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #2140 from mbedmicro/k64f_flow_control
Added flow control for K64Fpull/2151/head
commit
6f86064ece
|
@ -579,7 +579,7 @@
|
||||||
"inherits": ["Target"],
|
"inherits": ["Target"],
|
||||||
"progen": {"target": "frdm-k64f"},
|
"progen": {"target": "frdm-k64f"},
|
||||||
"detect_code": ["0240"],
|
"detect_code": ["0240"],
|
||||||
"device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "STORAGE"],
|
"device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "STORAGE"],
|
||||||
"features": ["IPV4"],
|
"features": ["IPV4"],
|
||||||
"release": true
|
"release": true
|
||||||
},
|
},
|
||||||
|
@ -592,7 +592,7 @@
|
||||||
"is_disk_virtual": true,
|
"is_disk_virtual": true,
|
||||||
"macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"],
|
"macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"],
|
||||||
"progen": {"target": "mts-gambit"},
|
"progen": {"target": "mts-gambit"},
|
||||||
"device_has": ["I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"]
|
"device_has": ["I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"]
|
||||||
},
|
},
|
||||||
"HEXIWEAR": {
|
"HEXIWEAR": {
|
||||||
"inherits": ["Target"],
|
"inherits": ["Target"],
|
||||||
|
@ -605,7 +605,7 @@
|
||||||
"default_toolchain": "ARM",
|
"default_toolchain": "ARM",
|
||||||
"detect_code": ["0214"],
|
"detect_code": ["0214"],
|
||||||
"progen": {"target": "hexiwear-k64f"},
|
"progen": {"target": "hexiwear-k64f"},
|
||||||
"device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
|
"device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
|
||||||
"default_build": "standard"
|
"default_build": "standard"
|
||||||
},
|
},
|
||||||
"NUCLEO_F030R8": {
|
"NUCLEO_F030R8": {
|
||||||
|
|
|
@ -112,6 +112,40 @@ const PinMap PinMap_UART_RX[] = {
|
||||||
{NC , NC , 0}
|
{NC , NC , 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const PinMap PinMap_UART_CTS[] = {
|
||||||
|
{PTB13, UART_3, 2},
|
||||||
|
{PTE2 , UART_1, 3},
|
||||||
|
{PTE6 , UART_3, 3},
|
||||||
|
{PTE26, UART_4, 3},
|
||||||
|
{PTA0 , UART_0, 2},
|
||||||
|
{PTA16, UART_0, 3},
|
||||||
|
{PTB3 , UART_0, 3},
|
||||||
|
{PTB9 , UART_3, 3},
|
||||||
|
{PTC2 , UART_1, 3},
|
||||||
|
{PTC13, UART_4, 3},
|
||||||
|
{PTC19, UART_3, 3},
|
||||||
|
{PTD1 , UART_2, 3},
|
||||||
|
{PTD5 , UART_0, 3},
|
||||||
|
{NC , NC , 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
const PinMap PinMap_UART_RTS[] = {
|
||||||
|
{PTB12, UART_3, 2},
|
||||||
|
{PTE3 , UART_1, 3},
|
||||||
|
{PTE7 , UART_3, 3},
|
||||||
|
{PTE27, UART_4, 3},
|
||||||
|
{PTA17, UART_0, 3},
|
||||||
|
{PTB8 , UART_3, 3},
|
||||||
|
{PTC1 , UART_1, 3},
|
||||||
|
{PTC12, UART_4, 3},
|
||||||
|
{PTC18, UART_3, 3},
|
||||||
|
{PTD0 , UART_2, 3},
|
||||||
|
{PTD4 , UART_0, 3},
|
||||||
|
{PTA3 , UART_0, 2},
|
||||||
|
{PTB2 , UART_0, 3},
|
||||||
|
{NC , NC , 0}
|
||||||
|
};
|
||||||
|
|
||||||
/************SPI***************/
|
/************SPI***************/
|
||||||
const PinMap PinMap_SPI_SCLK[] = {
|
const PinMap PinMap_SPI_SCLK[] = {
|
||||||
{PTD1 , SPI_0, 2},
|
{PTD1 , SPI_0, 2},
|
||||||
|
|
|
@ -280,4 +280,37 @@ void serial_break_clear(serial_t *obj) {
|
||||||
uart_addrs[obj->index]->C2 &= ~UART_C2_SBK_MASK;
|
uart_addrs[obj->index]->C2 &= ~UART_C2_SBK_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Only hardware flow control is implemented in this API.
|
||||||
|
*/
|
||||||
|
void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, PinName txflow)
|
||||||
|
{
|
||||||
|
switch(type) {
|
||||||
|
case FlowControlRTS:
|
||||||
|
pinmap_pinout(rxflow, PinMap_UART_RTS);
|
||||||
|
uart_addrs[obj->index]->MODEM &= ~UART_MODEM_TXCTSE_MASK;
|
||||||
|
uart_addrs[obj->index]->MODEM |= UART_MODEM_RXRTSE_MASK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FlowControlCTS:
|
||||||
|
pinmap_pinout(txflow, PinMap_UART_CTS);
|
||||||
|
uart_addrs[obj->index]->MODEM &= ~UART_MODEM_RXRTSE_MASK;
|
||||||
|
uart_addrs[obj->index]->MODEM |= UART_MODEM_TXCTSE_MASK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FlowControlRTSCTS:
|
||||||
|
pinmap_pinout(rxflow, PinMap_UART_RTS);
|
||||||
|
pinmap_pinout(txflow, PinMap_UART_CTS);
|
||||||
|
uart_addrs[obj->index]->MODEM |= UART_MODEM_TXCTSE_MASK | UART_MODEM_RXRTSE_MASK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FlowControlNone:
|
||||||
|
uart_addrs[obj->index]->MODEM &= ~(UART_MODEM_TXCTSE_MASK | UART_MODEM_RXRTSE_MASK);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -36,7 +36,8 @@ extern const PinMap PinMap_I2C_SCL[];
|
||||||
/************UART***************/
|
/************UART***************/
|
||||||
extern const PinMap PinMap_UART_TX[];
|
extern const PinMap PinMap_UART_TX[];
|
||||||
extern const PinMap PinMap_UART_RX[];
|
extern const PinMap PinMap_UART_RX[];
|
||||||
|
extern const PinMap PinMap_UART_CTS[];
|
||||||
|
extern const PinMap PinMap_UART_RTS[];
|
||||||
/************SPI***************/
|
/************SPI***************/
|
||||||
extern const PinMap PinMap_SPI_SCLK[];
|
extern const PinMap PinMap_SPI_SCLK[];
|
||||||
extern const PinMap PinMap_SPI_MOSI[];
|
extern const PinMap PinMap_SPI_MOSI[];
|
||||||
|
|
Loading…
Reference in New Issue