@@ -40,12 +40,12 @@ extern "C" {
40
40
* [2:0] Function (like in MODER reg) : Input / Output / Alt / Analog
41
41
* [3] Output Push-Pull / Open Drain (as in OTYPER reg)
42
42
* [5:4] as in PUPDR reg: No Pull, Pull-up, Pull-Donc
43
- * [7 :6] Reserved for speed config (as in OSPEEDR), but not used yet
44
- * [11:8 ] Alternate Num (as in AFRL/AFRG reg)
45
- * [16:12 ] Channel (Analog/Timer specific)
46
- * [17 ] Inverted (Analog/Timer specific)
47
- * [18 ] Analog ADC control - Only valid for specific families
48
- * [32:19 ] Reserved
43
+ * [9 :6] speed config (as in OSPEEDR)
44
+ * [13:10 ] Alternate Num (as in AFRL/AFRG reg)
45
+ * [17:14 ] Channel (Analog/Timer specific)
46
+ * [18 ] Inverted (Analog/Timer specific)
47
+ * [19 ] Analog ADC control - Only valid for specific families
48
+ * [32:21 ] Reserved
49
49
*/
50
50
51
51
#define STM_PIN_FUNCTION_MASK 0x07
@@ -60,24 +60,24 @@ extern "C" {
60
60
#define STM_PIN_PUPD_SHIFT 4
61
61
#define STM_PIN_PUPD_BITS (STM_PIN_PUPD_MASK << STM_PIN_PUPD_SHIFT)
62
62
63
- #define STM_PIN_SPEED_MASK 0x03
63
+ #define STM_PIN_SPEED_MASK 0x0F
64
64
#define STM_PIN_SPEED_SHIFT 6
65
65
#define STM_PIN_SPEED_BITS (STM_PIN_SPEED_MASK << STM_PIN_SPEED_SHIFT)
66
66
67
67
#define STM_PIN_AFNUM_MASK 0x0F
68
- #define STM_PIN_AFNUM_SHIFT 8
68
+ #define STM_PIN_AFNUM_SHIFT 10
69
69
#define STM_PIN_AFNUM_BITS (STM_PIN_AFNUM_MASK << STM_PIN_AFNUM_SHIFT)
70
70
71
71
#define STM_PIN_CHAN_MASK 0x1F
72
- #define STM_PIN_CHAN_SHIFT 12
72
+ #define STM_PIN_CHAN_SHIFT 14
73
73
#define STM_PIN_CHANNEL_BIT (STM_PIN_CHAN_MASK << STM_PIN_CHAN_SHIFT)
74
74
75
75
#define STM_PIN_INV_MASK 0x01
76
- #define STM_PIN_INV_SHIFT 17
76
+ #define STM_PIN_INV_SHIFT 19
77
77
#define STM_PIN_INV_BIT (STM_PIN_INV_MASK << STM_PIN_INV_SHIFT)
78
78
79
79
#define STM_PIN_AN_CTRL_MASK 0x01
80
- #define STM_PIN_AN_CTRL_SHIFT 18
80
+ #define STM_PIN_AN_CTRL_SHIFT 20
81
81
#define STM_PIN_ANALOG_CONTROL_BIT (STM_PIN_AN_CTRL_MASK << STM_PIN_AN_CTRL_SHIFT)
82
82
83
83
#define STM_PIN_FUNCTION (X ) (((X) >> STM_PIN_FUNCTION_SHIFT) & STM_PIN_FUNCTION_MASK)
@@ -90,15 +90,30 @@ extern "C" {
90
90
#define STM_PIN_ANALOG_CONTROL (X ) (((X) >> STM_PIN_AN_CTRL_SHIFT) & STM_PIN_AN_CTRL_MASK)
91
91
92
92
#define STM_PIN_DEFINE (FUNC_OD , PUPD , AFNUM ) ((int)(FUNC_OD) |\
93
- ((PUPD & STM_PIN_PUPD_MASK) << STM_PIN_PUPD_SHIFT) |\
94
- ((AFNUM & STM_PIN_AFNUM_MASK) << STM_PIN_AFNUM_SHIFT))
93
+ ((STM_PIN_SPEED_MASK & STM_PIN_SPEED_MASK) << STM_PIN_SPEED_SHIFT) |\
94
+ (((PUPD) & STM_PIN_PUPD_MASK) << STM_PIN_PUPD_SHIFT) |\
95
+ (((AFNUM) & STM_PIN_AFNUM_MASK) << STM_PIN_AFNUM_SHIFT))
96
+
97
+ #define STM_PIN_DEFINE_SPEED (FUNC_OD , PUPD , AFNUM , SPEEDV ) ((int)(FUNC_OD) |\
98
+ (((SPEEDV) & STM_PIN_SPEED_MASK) << STM_PIN_SPEED_SHIFT) |\
99
+ (((PUPD) & STM_PIN_PUPD_MASK) << STM_PIN_PUPD_SHIFT) |\
100
+ (((AFNUM) & STM_PIN_AFNUM_MASK) << STM_PIN_AFNUM_SHIFT))
95
101
96
102
#define STM_PIN_DEFINE_EXT (FUNC_OD , PUPD , AFNUM , CHAN , INV ) \
97
- ((int)(FUNC_OD) |\
98
- ((PUPD & STM_PIN_PUPD_MASK) << STM_PIN_PUPD_SHIFT) |\
99
- ((AFNUM & STM_PIN_AFNUM_MASK) << STM_PIN_AFNUM_SHIFT) |\
100
- ((CHAN & STM_PIN_CHAN_MASK) << STM_PIN_CHAN_SHIFT) |\
101
- ((INV & STM_PIN_INV_MASK) << STM_PIN_INV_SHIFT))
103
+ ((int)(FUNC_OD) |\
104
+ ((STM_PIN_SPEED_MASK & STM_PIN_SPEED_MASK) << STM_PIN_SPEED_SHIFT) |\
105
+ (((PUPD) & STM_PIN_PUPD_MASK) << STM_PIN_PUPD_SHIFT) |\
106
+ (((AFNUM) & STM_PIN_AFNUM_MASK) << STM_PIN_AFNUM_SHIFT) |\
107
+ (((CHAN) & STM_PIN_CHAN_MASK) << STM_PIN_CHAN_SHIFT) |\
108
+ (((INV) & STM_PIN_INV_MASK) << STM_PIN_INV_SHIFT))
109
+
110
+ #define STM_PIN_DEFINE_SPEED_EXT (FUNC_OD , PUPD , AFNUM , CHAN , INV , SPEEDV ) \
111
+ ((int)(FUNC_OD) |\
112
+ (((SPEEDV) & STM_PIN_SPEED_MASK) << STM_PIN_SPEED_SHIFT) |\
113
+ (((PUPD) & STM_PIN_PUPD_MASK) << STM_PIN_PUPD_SHIFT) |\
114
+ (((AFNUM) & STM_PIN_AFNUM_MASK) << STM_PIN_AFNUM_SHIFT) |\
115
+ (((CHAN) & STM_PIN_CHAN_MASK) << STM_PIN_CHAN_SHIFT) |\
116
+ (((INV) & STM_PIN_INV_MASK) << STM_PIN_INV_SHIFT))
102
117
103
118
/*
104
119
* MACROS to support the legacy definition of PIN formats
0 commit comments