[STM32F3xx] reorg hal

- build.py -t GCC_ARM -m xxx OK
- make.py -t GCC_ARM -p 26 -m xxx OK
pull/1004/head
ohagendorf 2015-03-23 02:00:32 +01:00
parent 5a2cd98407
commit 88ee51cecd
14 changed files with 33 additions and 0 deletions

View File

@ -39,6 +39,7 @@ typedef enum {
PortB = 1,
PortC = 2,
PortD = 3,
PortE = 4,
PortF = 5
} PortName;

View File

@ -39,6 +39,7 @@ typedef enum {
PortB = 1,
PortC = 2,
PortD = 3,
PortE = 4,
PortF = 5
} PortName;

View File

@ -61,9 +61,11 @@ void analogout_init(dac_t *obj, PinName pin)
if (obj->dac == DAC_1) {
__DAC1_CLK_ENABLE();
}
#if defined(__DAC2_FORCE_RESET)
if (obj->dac == DAC_2) {
__DAC2_CLK_ENABLE();
}
#endif
// Configure DAC
DacHandle.Instance = (DAC_TypeDef *)(obj->dac);
@ -76,10 +78,12 @@ void analogout_init(dac_t *obj, PinName pin)
pa4_used = 1;
}
#if defined(DAC_CHANNEL_2)
if (pin == PA_5) {
HAL_DAC_ConfigChannel(&DacHandle, &sConfig, DAC_CHANNEL_2);
pa5_used = 1;
}
#endif
if (pin == PA_6) {
HAL_DAC_ConfigChannel(&DacHandle, &sConfig, DAC_CHANNEL_1);
@ -119,18 +123,22 @@ static inline void dac_write(dac_t *obj, uint16_t value)
HAL_DAC_Start(&DacHandle, DAC_CHANNEL_1);
}
#if defined(DAC_CHANNEL_2)
if (obj->pin == PA_5) {
HAL_DAC_SetValue(&DacHandle, DAC_CHANNEL_2, DAC_ALIGN_12B_R, value);
HAL_DAC_Start(&DacHandle, DAC_CHANNEL_2);
}
#endif
}
static inline int dac_read(dac_t *obj)
{
if ((obj->pin == PA_4) || (obj->pin == PA_6)) {
return (int)HAL_DAC_GetValue(&DacHandle, DAC_CHANNEL_1);
#if defined(DAC_CHANNEL_2)
} else if (obj->pin == PA_5) {
return (int)HAL_DAC_GetValue(&DacHandle, DAC_CHANNEL_2);
#endif
} else {
return 0;
}

View File

@ -77,9 +77,11 @@ void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel
MBED_ASSERT(obj->spi != (SPIName)NC);
// Enable SPI clock
#if defined(SPI1_BASE)
if (obj->spi == SPI_1) {
__SPI1_CLK_ENABLE();
}
#endif
#if defined(SPI2_BASE)
if (obj->spi == SPI_2) {
@ -128,11 +130,13 @@ void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel
void spi_free(spi_t *obj)
{
// Reset SPI and disable clock
#if defined(SPI1_BASE)
if (obj->spi == SPI_1) {
__SPI1_FORCE_RESET();
__SPI1_RELEASE_RESET();
__SPI1_CLK_DISABLE();
}
#endif
#if defined(SPI2_BASE)
if (obj->spi == SPI_2) {
@ -217,6 +221,25 @@ void spi_frequency(spi_t *obj, int hz)
} else { // >= 32000000
obj->br_presc = SPI_BAUDRATEPRESCALER_2; // 32 MHz - 36 MHz
}
#elif defined(TARGET_STM32F302R8)
if (hz < 250000) {
obj->br_presc = SPI_BAUDRATEPRESCALER_256; // 125 kHz - 141 kHz
} else if ((hz >= 250000) && (hz < 500000)) {
obj->br_presc = SPI_BAUDRATEPRESCALER_128; // 250 kHz - 280 kHz
} else if ((hz >= 500000) && (hz < 1000000)) {
obj->br_presc = SPI_BAUDRATEPRESCALER_64; // 500 kHz - 560 kHz
} else if ((hz >= 1000000) && (hz < 2000000)) {
obj->br_presc = SPI_BAUDRATEPRESCALER_32; // 1 MHz - 1.13 MHz
} else if ((hz >= 2000000) && (hz < 4000000)) {
obj->br_presc = SPI_BAUDRATEPRESCALER_16; // 2 MHz - 2.25 MHz
} else if ((hz >= 4000000) && (hz < 8000000)) {
obj->br_presc = SPI_BAUDRATEPRESCALER_8; // 4 MHz - 4.5 MHz
} else if ((hz >= 8000000) && (hz < 16000000)) {
obj->br_presc = SPI_BAUDRATEPRESCALER_4; // 8 MHz - 9 MHz
} else { // >= 16000000
obj->br_presc = SPI_BAUDRATEPRESCALER_2; // 16 MHz - 18 MHz
}
#else
// Values depend of APB1CLK and APB2CLK : 32 MHz if HSI is used, 36 MHz if HSE is used
if (obj->spi == SPI_1) {