Skip to content

Commit 88ee51c

Browse files
committed
[STM32F3xx] reorg hal
- build.py -t GCC_ARM -m xxx OK - make.py -t GCC_ARM -p 26 -m xxx OK
1 parent 5a2cd98 commit 88ee51c

File tree

14 files changed

+33
-0
lines changed

14 files changed

+33
-0
lines changed

libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32F3/TARGET_NUCLEO_F303RE/PortNames.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ typedef enum {
3939
PortB = 1,
4040
PortC = 2,
4141
PortD = 3,
42+
PortE = 4,
4243
PortF = 5
4344
} PortName;
4445

libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32F3/TARGET_NUCLEO_F334R8/PortNames.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ typedef enum {
3939
PortB = 1,
4040
PortC = 2,
4141
PortD = 3,
42+
PortE = 4,
4243
PortF = 5
4344
} PortName;
4445

libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32F3/analogout_api.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,11 @@ void analogout_init(dac_t *obj, PinName pin)
6161
if (obj->dac == DAC_1) {
6262
__DAC1_CLK_ENABLE();
6363
}
64+
#if defined(__DAC2_FORCE_RESET)
6465
if (obj->dac == DAC_2) {
6566
__DAC2_CLK_ENABLE();
6667
}
68+
#endif
6769

6870
// Configure DAC
6971
DacHandle.Instance = (DAC_TypeDef *)(obj->dac);
@@ -76,10 +78,12 @@ void analogout_init(dac_t *obj, PinName pin)
7678
pa4_used = 1;
7779
}
7880

81+
#if defined(DAC_CHANNEL_2)
7982
if (pin == PA_5) {
8083
HAL_DAC_ConfigChannel(&DacHandle, &sConfig, DAC_CHANNEL_2);
8184
pa5_used = 1;
8285
}
86+
#endif
8387

8488
if (pin == PA_6) {
8589
HAL_DAC_ConfigChannel(&DacHandle, &sConfig, DAC_CHANNEL_1);
@@ -119,18 +123,22 @@ static inline void dac_write(dac_t *obj, uint16_t value)
119123
HAL_DAC_Start(&DacHandle, DAC_CHANNEL_1);
120124
}
121125

126+
#if defined(DAC_CHANNEL_2)
122127
if (obj->pin == PA_5) {
123128
HAL_DAC_SetValue(&DacHandle, DAC_CHANNEL_2, DAC_ALIGN_12B_R, value);
124129
HAL_DAC_Start(&DacHandle, DAC_CHANNEL_2);
125130
}
131+
#endif
126132
}
127133

128134
static inline int dac_read(dac_t *obj)
129135
{
130136
if ((obj->pin == PA_4) || (obj->pin == PA_6)) {
131137
return (int)HAL_DAC_GetValue(&DacHandle, DAC_CHANNEL_1);
138+
#if defined(DAC_CHANNEL_2)
132139
} else if (obj->pin == PA_5) {
133140
return (int)HAL_DAC_GetValue(&DacHandle, DAC_CHANNEL_2);
141+
#endif
134142
} else {
135143
return 0;
136144
}

libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32F3/spi_api.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,11 @@ void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel
7777
MBED_ASSERT(obj->spi != (SPIName)NC);
7878

7979
// Enable SPI clock
80+
#if defined(SPI1_BASE)
8081
if (obj->spi == SPI_1) {
8182
__SPI1_CLK_ENABLE();
8283
}
84+
#endif
8385

8486
#if defined(SPI2_BASE)
8587
if (obj->spi == SPI_2) {
@@ -128,11 +130,13 @@ void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel
128130
void spi_free(spi_t *obj)
129131
{
130132
// Reset SPI and disable clock
133+
#if defined(SPI1_BASE)
131134
if (obj->spi == SPI_1) {
132135
__SPI1_FORCE_RESET();
133136
__SPI1_RELEASE_RESET();
134137
__SPI1_CLK_DISABLE();
135138
}
139+
#endif
136140

137141
#if defined(SPI2_BASE)
138142
if (obj->spi == SPI_2) {
@@ -217,6 +221,25 @@ void spi_frequency(spi_t *obj, int hz)
217221
} else { // >= 32000000
218222
obj->br_presc = SPI_BAUDRATEPRESCALER_2; // 32 MHz - 36 MHz
219223
}
224+
#elif defined(TARGET_STM32F302R8)
225+
if (hz < 250000) {
226+
obj->br_presc = SPI_BAUDRATEPRESCALER_256; // 125 kHz - 141 kHz
227+
} else if ((hz >= 250000) && (hz < 500000)) {
228+
obj->br_presc = SPI_BAUDRATEPRESCALER_128; // 250 kHz - 280 kHz
229+
} else if ((hz >= 500000) && (hz < 1000000)) {
230+
obj->br_presc = SPI_BAUDRATEPRESCALER_64; // 500 kHz - 560 kHz
231+
} else if ((hz >= 1000000) && (hz < 2000000)) {
232+
obj->br_presc = SPI_BAUDRATEPRESCALER_32; // 1 MHz - 1.13 MHz
233+
} else if ((hz >= 2000000) && (hz < 4000000)) {
234+
obj->br_presc = SPI_BAUDRATEPRESCALER_16; // 2 MHz - 2.25 MHz
235+
} else if ((hz >= 4000000) && (hz < 8000000)) {
236+
obj->br_presc = SPI_BAUDRATEPRESCALER_8; // 4 MHz - 4.5 MHz
237+
} else if ((hz >= 8000000) && (hz < 16000000)) {
238+
obj->br_presc = SPI_BAUDRATEPRESCALER_4; // 8 MHz - 9 MHz
239+
} else { // >= 16000000
240+
obj->br_presc = SPI_BAUDRATEPRESCALER_2; // 16 MHz - 18 MHz
241+
}
242+
220243
#else
221244
// Values depend of APB1CLK and APB2CLK : 32 MHz if HSI is used, 36 MHz if HSE is used
222245
if (obj->spi == SPI_1) {

0 commit comments

Comments
 (0)