1919#define _PINS_ARDUINO_H_
2020
2121#include "PeripheralPins.h"
22- #include "pins_arduino_common.h"
23- #include "variant.h"
24-
25- #ifdef __cplusplus
26- extern "C" {
27- #endif
2822
2923/**
3024 * Libc porting layers
@@ -34,79 +28,28 @@ extern "C" {
3428#define WEAK __attribute__ ((weak))
3529#endif
3630
37- #define NOT_AN_INTERRUPT NC // -1
38- #define DEND PEND
39- #define NUM_DIGITAL_PINS ((uint32_t)DEND)
40- #define NUM_ANALOG_INPUTS ((uint32_t)(AEND-A0))
41-
42- // Convert a digital pin number Dxx to a PinName PX_n
43- // Note: Analog pin is also a digital pin.
44- #define digitalPinToPinName (p ) (((uint32_t)p < NUM_DIGITAL_PINS) ? digitalPin[p] : NC)
45- // Convert a PinName PX_n to a digital pin number
46- uint32_t pinNametoDigitalPin (PinName p );
47-
48- // Convert an analog pin number to a digital pin number
49- // Used by analogRead api to have A0 == 0
50- #define analogInputToDigitalPin (p ) (((uint32_t)p < NUM_ANALOG_INPUTS) ? (p+A0) : p)
51- // Convert an analog pin number Axx to a PinName PX_n
52- #define analogInputToPinName (p ) (digitalPinToPinName(analogInputToDigitalPin(p)))
53- // All pins could manage EXTI
54- #define digitalPinToInterrupt (p ) (digitalPinIsValid(p) ? p : NOT_AN_INTERRUPT)
55-
56- #define digitalPinHasI2C (p ) (pin_in_pinmap(digitalPinToPinName(p), PinMap_I2C_SDA) ||\
57- pin_in_pinmap(digitalPinToPinName(p), PinMap_I2C_SCL))
58- #define digitalPinHasPWM (p ) (pin_in_pinmap(digitalPinToPinName(p), PinMap_PWM))
59- #define digitalPinHasSerial (p ) (pin_in_pinmap(digitalPinToPinName(p), PinMap_UART_RX) ||\
60- pin_in_pinmap(digitalPinToPinName(p), PinMap_UART_TX))
61- #define digitalPinHasSPI (p ) (pin_in_pinmap(digitalPinToPinName(p), PinMap_SPI_MOSI) ||\
62- pin_in_pinmap(digitalPinToPinName(p), PinMap_SPI_MISO) ||\
63- pin_in_pinmap(digitalPinToPinName(p), PinMap_SPI_SCLK) ||\
64- pin_in_pinmap(digitalPinToPinName(p), PinMap_SPI_SSEL))
65-
66-
67- #define digitalPinToPort (p ) (get_GPIO_Port(STM_PORT(digitalPinToPinName(p))))
68- #define digitalPinToBitMask (p ) (STM_GPIO_PIN(digitalPinToPinName(p)))
69-
70- #define analogInPinToBit (p ) (STM_PIN(digitalPinToPinName(p)))
71- #define portOutputRegister (P ) (&(P->ODR))
72- #define portInputRegister (P ) (&(P->IDR))
73-
74- #define portSetRegister (P ) (&(P->BSRR))
75- #if defined(STM32F2xx ) || defined(STM32F4xx ) || defined(STM32F7xx )
76- // For those series reset are in the high part so << 16U needed
77- #define portClearRegister (P ) (&(P->BSRR))
78- #else
79- #define portClearRegister (P ) (&(P->BRR))
80- #endif
81-
82-
83- #if defined(STM32F1xx )
84- // Config registers split in 2 registers:
85- // CRL: pin 0..7
86- // CRH: pin 8..15
87- // Return only CRL
88- #define portModeRegister (P ) (&(P->CRL))
89- #else
90- #define portModeRegister (P ) (&(P->MODER))
91- #endif
92- #define portConfigRegister (P ) (portModeRegister(P))
93-
94-
95- #define digitalPinIsValid (p ) (digitalPinToPinName(p) != NC)
96-
97- // As some pin could be duplicated in digitalPin[]
98- // return first occurence of linked PinName (PYx)
99- #define digitalPinFirstOccurence (p ) (pinNametoDigitalPin(digitalPinToPinName(p)))
100-
101- // Specific for Firmata. As some pins could be duplicated,
102- // ensure 'p' is not one of the serial pins
103- #if defined(PIN_SERIAL_RX ) && defined(PIN_SERIAL_TX )
104- #define pinIsSerial (p ) ((digitalPinFirstOccurence(p) == PIN_SERIAL_RX) ||\
105- (digitalPinFirstOccurence(p) == PIN_SERIAL_TX))
106- #endif
107-
108- #ifdef __cplusplus
109- }
110- #endif
31+ // Arduino digital pin alias
32+ // GPIO port (A to K) * 16 pins: 176
33+ enum {
34+ D0 , D1 , D2 , D3 , D4 , D5 , D6 , D7 , D8 , D9 ,
35+ D10 , D11 , D12 , D13 , D14 , D15 , D16 , D17 , D18 , D19 ,
36+ D20 , D21 , D22 , D23 , D24 , D25 , D26 , D27 , D28 , D29 ,
37+ D30 , D31 , D32 , D33 , D34 , D35 , D36 , D37 , D38 , D39 ,
38+ D40 , D41 , D42 , D43 , D44 , D45 , D46 , D47 , D48 , D49 ,
39+ D50 , D51 , D52 , D53 , D54 , D55 , D56 , D57 , D58 , D59 ,
40+ D60 , D61 , D62 , D63 , D64 , D65 , D66 , D67 , D68 , D69 ,
41+ D70 , D71 , D72 , D73 , D74 , D75 , D76 , D77 , D78 , D79 ,
42+ D80 , D81 , D82 , D83 , D84 , D85 , D86 , D87 , D88 , D89 ,
43+ D90 , D91 , D92 , D93 , D94 , D95 , D96 , D97 , D98 , D99 ,
44+ D100 , D101 , D102 , D103 , D104 , D105 , D106 , D107 , D108 , D109 ,
45+ D110 , D111 , D112 , D113 , D114 , D115 , D116 , D117 , D118 , D119 ,
46+ D120 , D121 , D122 , D123 , D124 , D125 , D126 , D127 , D128 , D129 ,
47+ D130 , D131 , D132 , D133 , D134 , D135 , D136 , D137 , D138 , D139 ,
48+ D140 , D141 , D142 , D143 , D144 , D145 , D146 , D147 , D148 , D149 ,
49+ D150 , D151 , D152 , D153 , D154 , D155 , D156 , D157 , D158 , D159 ,
50+ D160 , D161 , D162 , D163 , D164 , D165 , D166 , D167 , D168 , D169 ,
51+ D170 , D171 , D172 , D173 , D174 , D175 ,
52+ DMAX
53+ };
11154
11255#endif /*_PINS_ARDUINO_H_*/
0 commit comments