Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-src by
Revision 456:eac4c60f761b, committed 2015-01-28
- Comitter:
- mbed_official
- Date:
- Wed Jan 28 11:15:07 2015 +0000
- Parent:
- 455:8bc3a354916d
- Child:
- 457:777fdfed0738
- Commit message:
- Synchronized with git revision 9cdef7e7259f4f430d3398a6932089950c89aca6
Full URL: https://github.com/mbedmicro/mbed/commit/9cdef7e7259f4f430d3398a6932089950c89aca6/
NUCLEO_F303RE - Corrections in ADC
Changed in this revision
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F303RE/PeripheralNames.h Tue Jan 27 13:30:08 2015 +0000
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F303RE/PeripheralNames.h Wed Jan 28 11:15:07 2015 +0000
@@ -38,9 +38,7 @@
typedef enum {
ADC_1 = (int)ADC1_BASE,
- ADC_2 = (int)ADC2_BASE,
- ADC_3 = (int)ADC3_BASE,
- ADC_4 = (int)ADC4_BASE
+ ADC_2 = (int)ADC2_BASE
} ADCName;
typedef enum {
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F303RE/PeripheralPins.c Tue Jan 27 13:30:08 2015 +0000
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F303RE/PeripheralPins.c Wed Jan 28 11:15:07 2015 +0000
@@ -44,18 +44,12 @@
{PA_2, ADC_1, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC1_IN3
{PA_3, ADC_1, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC1_IN4
{PA_4, ADC_2, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC2_IN1 - ARDUINO A2
- {PA_5, ADC_2, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC2_IN2 - Warning: LED1 is connected on this pin
+ {PA_5, ADC_2, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC2_IN2 - Warning: LED1 is also connected to this pin
{PA_6, ADC_2, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC2_IN3
{PA_7, ADC_2, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC2_IN4
- {PB_0, ADC_3, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC3_IN12 - ARDUINO A3
- {PB_1, ADC_3, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC3_IN1
{PB_2, ADC_2, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC2_IN12
{PB_11, ADC_1, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC12_IN14
- {PB_12, ADC_4, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC4_IN3
- {PB_13, ADC_3, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC3_IN5
- {PB_14, ADC_4, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC4_IN4
- {PB_15, ADC_4, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC4_IN5
{PC_0, ADC_1, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC12_IN6 - ARDUINO A5
{PC_1, ADC_1, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0)}, // ADC12_IN7 - ARDUINO A4
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F303RE/analogin_api.c Tue Jan 27 13:30:08 2015 +0000
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F303RE/analogin_api.c Wed Jan 28 11:15:07 2015 +0000
@@ -41,8 +41,6 @@
{
static int adc1_inited = 0;
static int adc2_inited = 0;
- static int adc3_inited = 0;
- static int adc4_inited = 0;
// Get the peripheral name from the pin and assign it to the object
obj->adc = (ADCName)pinmap_peripheral(pin, PinMap_ADC);
@@ -57,8 +55,6 @@
// Check if ADC is already initialized
if ((obj->adc == ADC_1) && adc1_inited) return;
if ((obj->adc == ADC_2) && adc2_inited) return;
- if ((obj->adc == ADC_3) && adc3_inited) return;
- if ((obj->adc == ADC_4) && adc4_inited) return;
if (obj->adc == ADC_1) {
__ADC12_CLK_ENABLE();
@@ -70,23 +66,13 @@
adc2_inited = 1;
}
- if (obj->adc == ADC_3) {
- __ADC34_CLK_ENABLE();
- adc3_inited = 1;
- }
-
- if (obj->adc == ADC_4) {
- __ADC34_CLK_ENABLE();
- adc4_inited = 1;
- }
-
// Configure ADC
AdcHandle.Instance = (ADC_TypeDef *)(obj->adc);
AdcHandle.Init.ClockPrescaler = ADC_CLOCKPRESCALER_PCLK_DIV2;
AdcHandle.Init.Resolution = ADC_RESOLUTION12b;
AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT;
AdcHandle.Init.ScanConvMode = DISABLE;
- AdcHandle.Init.EOCSelection = DISABLE;
+ AdcHandle.Init.EOCSelection = EOC_SINGLE_CONV;
AdcHandle.Init.LowPowerAutoWait = DISABLE;
AdcHandle.Init.ContinuousConvMode = DISABLE;
AdcHandle.Init.NbrOfConversion = 1;
@@ -114,51 +100,22 @@
switch (obj->pin) {
case PA_0:
+ case PA_4:
sConfig.Channel = ADC_CHANNEL_1;
break;
case PA_1:
+ case PA_5:
sConfig.Channel = ADC_CHANNEL_2;
break;
case PA_2:
+ case PA_6:
sConfig.Channel = ADC_CHANNEL_3;
break;
case PA_3:
- sConfig.Channel = ADC_CHANNEL_4;
- break;
- case PA_4:
- sConfig.Channel = ADC_CHANNEL_1;
- break;
- case PA_5:
- sConfig.Channel = ADC_CHANNEL_2;
- break;
- case PA_6:
- sConfig.Channel = ADC_CHANNEL_3;
- break;
case PA_7:
sConfig.Channel = ADC_CHANNEL_4;
break;
- case PB_0:
- sConfig.Channel = ADC_CHANNEL_12;
- break;
- case PB_1:
- sConfig.Channel = ADC_CHANNEL_1;
- break;
- case PB_2:
- sConfig.Channel = ADC_CHANNEL_12;
- break;
- case PB_11:
- sConfig.Channel = ADC_CHANNEL_14;
- break;
- case PB_12:
- sConfig.Channel = ADC_CHANNEL_3;
- break;
- case PB_13:
- sConfig.Channel = ADC_CHANNEL_5;
- break;
- case PB_14:
- sConfig.Channel = ADC_CHANNEL_4;
- break;
- case PB_15:
+ case PC_4:
sConfig.Channel = ADC_CHANNEL_5;
break;
case PC_0:
@@ -173,12 +130,15 @@
case PC_3:
sConfig.Channel = ADC_CHANNEL_9;
break;
- case PC_4:
- sConfig.Channel = ADC_CHANNEL_5;
- break;
case PC_5:
sConfig.Channel = ADC_CHANNEL_11;
break;
+ case PB_2:
+ sConfig.Channel = ADC_CHANNEL_12;
+ break;
+ case PB_11:
+ sConfig.Channel = ADC_CHANNEL_14;
+ break;
default:
return 0;
}
