mirror of https://github.com/ARMmbed/mbed-os.git
[NUCLEO_F103RB] Code cleanup
parent
a129b8f8fa
commit
2310b4c031
|
@ -32,8 +32,8 @@ typedef enum {
|
|||
UART_2 = (int)USART2_BASE
|
||||
} UARTName;
|
||||
|
||||
#define STDIO_UART_TX UART_TX
|
||||
#define STDIO_UART_RX UART_RX
|
||||
#define STDIO_UART_TX PA_2
|
||||
#define STDIO_UART_RX PA_3
|
||||
#define STDIO_UART UART_2
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -88,45 +88,10 @@ typedef enum {
|
|||
PC_14 = 0x2E,
|
||||
PC_15 = 0x2F,
|
||||
|
||||
PD_0 = 0x30,
|
||||
PD_1 = 0x31,
|
||||
PD_2 = 0x32,
|
||||
PD_3 = 0x33,
|
||||
PD_4 = 0x34,
|
||||
PD_5 = 0x35,
|
||||
PD_6 = 0x36,
|
||||
PD_7 = 0x37,
|
||||
PD_8 = 0x38,
|
||||
PD_9 = 0x39,
|
||||
PD_10 = 0x3A,
|
||||
PD_11 = 0x3B,
|
||||
PD_12 = 0x3C,
|
||||
PD_13 = 0x3D,
|
||||
PD_14 = 0x3E,
|
||||
PD_15 = 0x3F,
|
||||
|
||||
PE_0 = 0x40,
|
||||
PE_1 = 0x41,
|
||||
PE_2 = 0x42,
|
||||
PE_3 = 0x43,
|
||||
PE_4 = 0x44,
|
||||
PE_5 = 0x45,
|
||||
PE_6 = 0x46,
|
||||
PE_7 = 0x47,
|
||||
PE_8 = 0x48,
|
||||
PE_9 = 0x49,
|
||||
PE_10 = 0x4A,
|
||||
PE_11 = 0x4B,
|
||||
PE_12 = 0x4C,
|
||||
PE_13 = 0x4D,
|
||||
PE_14 = 0x4E,
|
||||
PE_15 = 0x4F,
|
||||
|
||||
//--------------------
|
||||
// NUCLEO_F103RB board
|
||||
//--------------------
|
||||
|
||||
// Arduino connectors
|
||||
// Arduino connector namings
|
||||
A0 = PA_0,
|
||||
A1 = PA_1,
|
||||
A2 = PA_4,
|
||||
|
@ -150,7 +115,11 @@ typedef enum {
|
|||
D14 = PB_9,
|
||||
D15 = PB_8,
|
||||
|
||||
// Generic signals
|
||||
// Generic signals namings
|
||||
LED1 = PA_5,
|
||||
LED2 = PA_5,
|
||||
LED3 = PA_5,
|
||||
LED4 = PA_5,
|
||||
USER_BUTTON = PC_13,
|
||||
SERIAL_TX = PA_2,
|
||||
SERIAL_RX = PA_3,
|
||||
|
@ -159,14 +128,9 @@ typedef enum {
|
|||
SPI_MOSI = PA_7,
|
||||
SPI_MISO = PA_6,
|
||||
SPI_SCK = PA_5,
|
||||
SPI_CS = PB_6,
|
||||
PWM_OUT = PB_3,
|
||||
|
||||
// mbed mandatory namings
|
||||
LED1 = PA_5,
|
||||
LED2 = PA_5,
|
||||
LED3 = PA_5,
|
||||
LED4 = PA_5,
|
||||
|
||||
// Not connected
|
||||
NC = (int)0xFFFFFFFF
|
||||
} PinName;
|
||||
|
|
|
@ -13,9 +13,6 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
//==============================================================================
|
||||
// STM32F103
|
||||
//==============================================================================
|
||||
#include "analogin_api.h"
|
||||
#include "wait_api.h"
|
||||
|
||||
|
|
|
@ -13,19 +13,12 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
//==============================================================================
|
||||
// STM32F103
|
||||
//==============================================================================
|
||||
#include "serial_api.h"
|
||||
#include "cmsis.h"
|
||||
#include "pinmap.h"
|
||||
#include "error.h"
|
||||
#include <string.h>
|
||||
|
||||
/******************************************************************************
|
||||
* INITIALIZATION
|
||||
******************************************************************************/
|
||||
|
||||
static const PinMap PinMap_UART_TX[] = {
|
||||
{PA_9, UART_1, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)},
|
||||
{PA_2, UART_2, STM_PIN_DATA(GPIO_Mode_AF_PP, 0)},
|
||||
|
|
|
@ -13,9 +13,6 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
//==============================================================================
|
||||
// STM32F103
|
||||
//==============================================================================
|
||||
#include "spi_api.h"
|
||||
|
||||
#if DEVICE_SPI
|
||||
|
@ -45,16 +42,33 @@ static const PinMap PinMap_SPI_SCLK[] = {
|
|||
|
||||
// Only used in Slave mode
|
||||
static const PinMap PinMap_SPI_SSEL[] = {
|
||||
{PA_4, SPI_1, STM_PIN_DATA(GPIO_Mode_IN_FLOATING, 0)},
|
||||
{PA_15, SPI_1, STM_PIN_DATA(GPIO_Mode_IN_FLOATING, 1)}, // Remap
|
||||
{PB_6, SPI_1, STM_PIN_DATA(GPIO_Mode_IN_FLOATING, 0)}, // Generic IO, not real H/W NSS pin
|
||||
//{PA_4, SPI_1, STM_PIN_DATA(GPIO_Mode_IN_FLOATING, 0)},
|
||||
//{PA_15, SPI_1, STM_PIN_DATA(GPIO_Mode_IN_FLOATING, 1)}, // Remap
|
||||
{NC, NC, 0}
|
||||
};
|
||||
|
||||
void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel) {
|
||||
|
||||
SPI_TypeDef *spi;
|
||||
static void init_spi(spi_t *obj) {
|
||||
SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi);
|
||||
SPI_InitTypeDef SPI_InitStructure;
|
||||
|
||||
|
||||
SPI_Cmd(spi, DISABLE);
|
||||
|
||||
SPI_InitStructure.SPI_Mode = obj->mode;
|
||||
SPI_InitStructure.SPI_NSS = obj->nss;
|
||||
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
|
||||
SPI_InitStructure.SPI_DataSize = obj->bits;
|
||||
SPI_InitStructure.SPI_CPOL = obj->cpol;
|
||||
SPI_InitStructure.SPI_CPHA = obj->cpha;
|
||||
SPI_InitStructure.SPI_BaudRatePrescaler = obj->br_presc;
|
||||
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
|
||||
SPI_InitStructure.SPI_CRCPolynomial = 7;
|
||||
SPI_Init(spi, &SPI_InitStructure);
|
||||
|
||||
SPI_Cmd(spi, ENABLE);
|
||||
}
|
||||
|
||||
void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel) {
|
||||
// Determine the SPI to use
|
||||
SPIName spi_mosi = (SPIName)pinmap_peripheral(mosi, PinMap_SPI_MOSI);
|
||||
SPIName spi_miso = (SPIName)pinmap_peripheral(miso, PinMap_SPI_MISO);
|
||||
|
@ -69,9 +83,6 @@ void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel
|
|||
if (obj->spi == (SPIName)NC) {
|
||||
error("SPI pinout mapping failed");
|
||||
}
|
||||
|
||||
// Get SPI registers structure address
|
||||
spi = (SPI_TypeDef *)(obj->spi);
|
||||
|
||||
// Enable SPI clock
|
||||
if (obj->spi == SPI_1) {
|
||||
|
@ -99,22 +110,10 @@ void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel
|
|||
else { // Slave
|
||||
pinmap_pinout(ssel, PinMap_SPI_SSEL);
|
||||
obj->mode = SPI_Mode_Slave;
|
||||
obj->nss = SPI_NSS_Hard;
|
||||
obj->nss = SPI_NSS_Soft;
|
||||
}
|
||||
|
||||
// SPI configuration
|
||||
SPI_InitStructure.SPI_Mode = obj->mode;
|
||||
SPI_InitStructure.SPI_NSS = obj->nss;
|
||||
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
|
||||
SPI_InitStructure.SPI_DataSize = obj->bits;
|
||||
SPI_InitStructure.SPI_CPOL = obj->cpol;
|
||||
SPI_InitStructure.SPI_CPHA = obj->cpha;
|
||||
SPI_InitStructure.SPI_BaudRatePrescaler = obj->br_presc;
|
||||
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
|
||||
SPI_InitStructure.SPI_CRCPolynomial = 7;
|
||||
SPI_Init(spi, &SPI_InitStructure);
|
||||
|
||||
SPI_Cmd(spi, ENABLE);
|
||||
init_spi(obj);
|
||||
}
|
||||
|
||||
void spi_free(spi_t *obj) {
|
||||
|
@ -122,12 +121,8 @@ void spi_free(spi_t *obj) {
|
|||
SPI_I2S_DeInit(spi);
|
||||
}
|
||||
|
||||
void spi_format(spi_t *obj, int bits, int mode, int slave) {
|
||||
SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi);
|
||||
SPI_InitTypeDef SPI_InitStructure;
|
||||
|
||||
void spi_format(spi_t *obj, int bits, int mode, int slave) {
|
||||
// Save new values
|
||||
|
||||
if (bits == 8) {
|
||||
obj->bits = SPI_DataSize_8b;
|
||||
}
|
||||
|
@ -163,26 +158,10 @@ void spi_format(spi_t *obj, int bits, int mode, int slave) {
|
|||
obj->nss = SPI_NSS_Hard;
|
||||
}
|
||||
|
||||
SPI_Cmd(spi, DISABLE);
|
||||
|
||||
SPI_InitStructure.SPI_Mode = obj->mode;
|
||||
SPI_InitStructure.SPI_NSS = obj->nss;
|
||||
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
|
||||
SPI_InitStructure.SPI_DataSize = obj->bits;
|
||||
SPI_InitStructure.SPI_CPOL = obj->cpol;
|
||||
SPI_InitStructure.SPI_CPHA = obj->cpha;
|
||||
SPI_InitStructure.SPI_BaudRatePrescaler = obj->br_presc;
|
||||
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
|
||||
SPI_InitStructure.SPI_CRCPolynomial = 7;
|
||||
SPI_Init(spi, &SPI_InitStructure);
|
||||
|
||||
SPI_Cmd(spi, ENABLE);
|
||||
init_spi(obj);
|
||||
}
|
||||
|
||||
void spi_frequency(spi_t *obj, int hz) {
|
||||
SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi);
|
||||
SPI_InitTypeDef SPI_InitStructure;
|
||||
|
||||
// Get SPI clock frequency
|
||||
uint32_t PCLK = SystemCoreClock >> 1;
|
||||
|
||||
|
@ -203,20 +182,7 @@ void spi_frequency(spi_t *obj, int hz) {
|
|||
// Save new value
|
||||
obj->br_presc = ((baud_rate > 7) ? (7 << 3) : (baud_rate << 3));
|
||||
|
||||
SPI_Cmd(spi, DISABLE);
|
||||
|
||||
SPI_InitStructure.SPI_Mode = obj->mode;
|
||||
SPI_InitStructure.SPI_NSS = obj->nss;
|
||||
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
|
||||
SPI_InitStructure.SPI_DataSize = obj->bits;
|
||||
SPI_InitStructure.SPI_CPOL = obj->cpol;
|
||||
SPI_InitStructure.SPI_CPHA = obj->cpha;
|
||||
SPI_InitStructure.SPI_BaudRatePrescaler = obj->br_presc;
|
||||
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
|
||||
SPI_InitStructure.SPI_CRCPolynomial = 7;
|
||||
SPI_Init(spi, &SPI_InitStructure);
|
||||
|
||||
SPI_Cmd(spi, ENABLE);
|
||||
init_spi(obj);
|
||||
}
|
||||
|
||||
static inline int ssp_readable(spi_t *obj) {
|
||||
|
|
Loading…
Reference in New Issue