mirror of https://github.com/ARMmbed/mbed-os.git
[NUCLEO_F103RB] Code cleanup
parent
340d88b8cb
commit
37b8acad68
|
@ -22,24 +22,17 @@
|
|||
// Only TIM2 and TIM3 can be used (TIM1 and TIM4 are used by the us_ticker)
|
||||
static const PinMap PinMap_PWM[] = {
|
||||
// TIM2
|
||||
{PA_2, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)}, // TIM2_CH3 OK
|
||||
{PA_3, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)}, // TIM2_CH4 OK
|
||||
{PA_2, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)}, // TIM2_CH3 - ARDUINO D1 (extra)
|
||||
{PA_3, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)}, // TIM2_CH4 - ARDUINO D0 (extra)
|
||||
// TIM2 remap
|
||||
{PA_15, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 5)}, // TIM2r_CH1 FAIL
|
||||
{PB_3, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 5)}, // TIM2r_CH2 FAIL - ARDUINO D3
|
||||
{PB_10, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 5)}, // TIM2r_CH3 OK - ARDUINO D6
|
||||
{PB_11, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 5)}, // TIM2r_CH4 OK
|
||||
{PB_3, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 5)}, // TIM2r_CH2 - ARDUINO D3
|
||||
{PB_10, PWM_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 5)}, // TIM2r_CH3 - ARDUINO D6
|
||||
// TIM3
|
||||
{PA_6, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)}, // TIM3_CH1 OK
|
||||
{PA_7, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)}, // TIM3_CH2 OK - ARDUINO D11
|
||||
{PB_1, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)}, // TIM3_CH4 OK
|
||||
{PA_6, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)}, // TIM3_CH1 - ARDUINO D12 (extra)
|
||||
{PA_7, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)}, // TIM3_CH2 - ARDUINO D11
|
||||
// TIM3 remap
|
||||
{PB_4, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 6)}, // TIM3r_CH1 FAIL - ARDUINO D5
|
||||
{PC_6, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 6)}, // TIM3r_CH1 OK
|
||||
{PC_7, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 6)}, // TIM3r_CH2 OK - ARDUINO D9
|
||||
{PB_5, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 6)}, // TIM3r_CH2 FAIL - Bug confirmed in ES
|
||||
{PC_8, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 6)}, // TIM3r_CH3 OK
|
||||
{PC_9, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 6)}, // TIM3r_CH4 OK
|
||||
{PB_4, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 6)}, // TIM3r_CH1 - ARDUINO D5
|
||||
{PC_7, PWM_3, STM_PIN_DATA(GPIO_Mode_AF_PP, 6)}, // TIM3r_CH2 - ARDUINO D9
|
||||
{NC, NC, 0}
|
||||
};
|
||||
|
||||
|
@ -90,22 +83,26 @@ void pwmout_write(pwmout_t* obj, float value) {
|
|||
TIM_OCInitStructure.TIM_Pulse = obj->pulse;
|
||||
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
|
||||
|
||||
if ((obj->pin == PA_6) || (obj->pin == PA_15) || (obj->pin == PB_4) || (obj->pin == PC_6)) { // TIM Channel 1
|
||||
// TIM Channel 1
|
||||
if ((obj->pin == PA_6) || (obj->pin == PB_4)) {
|
||||
TIM_OC1PreloadConfig(tim, TIM_OCPreload_Enable);
|
||||
TIM_OC1Init(tim, &TIM_OCInitStructure);
|
||||
}
|
||||
|
||||
if ((obj->pin == PA_7) || (obj->pin == PB_3) || (obj->pin == PB_5) || (obj->pin == PC_7)) { // TIM Channel 2
|
||||
// TIM Channel 2
|
||||
if ((obj->pin == PA_7) || (obj->pin == PB_3) || (obj->pin == PC_7)) {
|
||||
TIM_OC2PreloadConfig(tim, TIM_OCPreload_Enable);
|
||||
TIM_OC2Init(tim, &TIM_OCInitStructure);
|
||||
}
|
||||
|
||||
if ((obj->pin == PA_2) || (obj->pin == PB_10) || (obj->pin == PC_8)) { // TIM Channel 3
|
||||
// TIM Channel 3
|
||||
if ((obj->pin == PA_2) || (obj->pin == PB_10)) {
|
||||
TIM_OC3PreloadConfig(tim, TIM_OCPreload_Enable);
|
||||
TIM_OC3Init(tim, &TIM_OCInitStructure);
|
||||
}
|
||||
|
||||
if ((obj->pin == PA_3) || (obj->pin == PB_1) || (obj->pin == PB_11) || (obj->pin == PC_9)) { // TIM Channel 4
|
||||
// TIM Channel 4
|
||||
if (obj->pin == PA_3) {
|
||||
TIM_OC4PreloadConfig(tim, TIM_OCPreload_Enable);
|
||||
TIM_OC4Init(tim, &TIM_OCInitStructure);
|
||||
}
|
||||
|
|
|
@ -47,11 +47,24 @@ static uart_irq_handler irq_handler;
|
|||
int stdio_uart_inited = 0;
|
||||
serial_t stdio_uart;
|
||||
|
||||
void serial_init(serial_t *obj, PinName tx, PinName rx) {
|
||||
|
||||
USART_TypeDef *usart;
|
||||
static void init_usart(serial_t *obj) {
|
||||
USART_TypeDef *usart = (USART_TypeDef *)(obj->uart);
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
|
||||
USART_Cmd(usart, DISABLE);
|
||||
|
||||
USART_InitStructure.USART_BaudRate = obj->baudrate;
|
||||
USART_InitStructure.USART_WordLength = obj->databits;
|
||||
USART_InitStructure.USART_StopBits = obj->stopbits;
|
||||
USART_InitStructure.USART_Parity = obj->parity;
|
||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
||||
USART_Init(usart, &USART_InitStructure);
|
||||
|
||||
USART_Cmd(usart, ENABLE);
|
||||
}
|
||||
|
||||
void serial_init(serial_t *obj, PinName tx, PinName rx) {
|
||||
// Determine the UART to use (UART_1, UART_2, ...)
|
||||
UARTName uart_tx = (UARTName)pinmap_peripheral(tx, PinMap_UART_TX);
|
||||
UARTName uart_rx = (UARTName)pinmap_peripheral(rx, PinMap_UART_RX);
|
||||
|
@ -62,10 +75,7 @@ void serial_init(serial_t *obj, PinName tx, PinName rx) {
|
|||
if (obj->uart == (UARTName)NC) {
|
||||
error("Serial pinout mapping failed");
|
||||
}
|
||||
|
||||
// Get UART registers structure address
|
||||
usart = (USART_TypeDef *)(obj->uart);
|
||||
|
||||
|
||||
// Enable USART clock
|
||||
if (obj->uart == UART_1) {
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
|
||||
|
@ -84,15 +94,7 @@ void serial_init(serial_t *obj, PinName tx, PinName rx) {
|
|||
obj->stopbits = USART_StopBits_1;
|
||||
obj->parity = USART_Parity_No;
|
||||
|
||||
USART_InitStructure.USART_BaudRate = obj->baudrate;
|
||||
USART_InitStructure.USART_WordLength = obj->databits;
|
||||
USART_InitStructure.USART_StopBits = obj->stopbits;
|
||||
USART_InitStructure.USART_Parity = obj->parity;
|
||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
||||
USART_Init(usart, &USART_InitStructure);
|
||||
|
||||
USART_Cmd(usart, ENABLE);
|
||||
init_usart(obj);
|
||||
|
||||
// The index is used by irq
|
||||
if (obj->uart == UART_1) obj->index = 0;
|
||||
|
@ -111,31 +113,11 @@ void serial_free(serial_t *obj) {
|
|||
}
|
||||
|
||||
void serial_baud(serial_t *obj, int baudrate) {
|
||||
USART_TypeDef *usart = (USART_TypeDef *)(obj->uart);
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
|
||||
// Save new value
|
||||
obj->baudrate = baudrate;
|
||||
|
||||
USART_Cmd(usart, DISABLE);
|
||||
|
||||
USART_InitStructure.USART_BaudRate = obj->baudrate;
|
||||
USART_InitStructure.USART_WordLength = obj->databits;
|
||||
USART_InitStructure.USART_StopBits = obj->stopbits;
|
||||
USART_InitStructure.USART_Parity = obj->parity;
|
||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
||||
USART_Init(usart, &USART_InitStructure);
|
||||
|
||||
USART_Cmd(usart, ENABLE);
|
||||
init_usart(obj);
|
||||
}
|
||||
|
||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||
USART_TypeDef *usart = (USART_TypeDef *)(obj->uart);
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
|
||||
// Save new values
|
||||
|
||||
if (data_bits == 8) {
|
||||
obj->databits = USART_WordLength_8b;
|
||||
}
|
||||
|
@ -164,17 +146,7 @@ void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_b
|
|||
obj->stopbits = USART_StopBits_1;
|
||||
}
|
||||
|
||||
USART_Cmd(usart, DISABLE);
|
||||
|
||||
USART_InitStructure.USART_BaudRate = obj->baudrate;
|
||||
USART_InitStructure.USART_WordLength = obj->databits;
|
||||
USART_InitStructure.USART_StopBits = obj->stopbits;
|
||||
USART_InitStructure.USART_Parity = obj->parity;
|
||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
||||
USART_Init(usart, &USART_InitStructure);
|
||||
|
||||
USART_Cmd(usart, ENABLE);
|
||||
init_usart(obj);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
|
Loading…
Reference in New Issue