mbed library sources(for async_print)

Dependents:   AsyncPrint

Fork of mbed-src by mbed official

Files at this revision

API Documentation at this revision

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

targets/hal/TARGET_STM/TARGET_NUCLEO_F303RE/PeripheralNames.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F303RE/PeripheralPins.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F303RE/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
--- 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;
     }