19
19
// Pin number
20
20
// Pin number
21
21
const PinName digitalPin[] = {
22
- PC_4, // D0/A1
23
- PA_5, // D1/A3
24
- PC_5, // D2/A5
25
- PA_2, // D3/A0
26
- PA_4, // D4/A2
27
- PA_7, // D5
28
- PC_3, // D6
29
- PA_9, // D7
30
- PA_15, // D8
31
- PC_2, // D9
32
- PA_6, // D10/A4
33
- PA_8, // D11
34
- PC_6, // D12
35
- PB_13, // D13
36
- PB_14, // D14
37
- PB_15, // D15
38
- PE_4, // D16
39
- PC_1, // D17
40
- PC_0, // D18
41
- PB_2, // D19
42
- PD_0, // D20
43
- PB_8, // D21
44
- PB_9, // D22
45
- PC_13, // D23
46
- PB_12, // D24
47
- PB_0, // D25
48
- PD_1, // D26
49
- PB_6, // D27
50
- PB_7, // D28
51
- PC_10, // D29
52
- PH_3, // D30
53
- PC_11, // D31
54
- PC_12, // D32
55
- PA_0, // D33
56
- PA_3, // D34
57
- PA_10, // D35
58
- PA_12, // D36
59
- PB_1, // D37
60
- PB_10, // D38
61
- PB_11, // D39
62
- PA_11, // D40
63
- PB_4, // D41
64
- PB_5, // D42
65
- PA_1, // D43
22
+ PC_4, // D0/A1
23
+ PA_5, // D1/A3
24
+ PC_5, // D2/A5
25
+ PA_2, // D3/A0
26
+ PA_4, // D4/A2
27
+ PA_7, // D5
28
+ PC_3, // D6
29
+ PA_9, // D7
30
+ PA_15, // D8
31
+ PC_2, // D9
32
+ PA_6, // D10/A4
33
+ PA_8, // D11
34
+ PC_6, // D12
35
+ PB_13, // D13
36
+ PB_14, // D14
37
+ PB_15, // D15
38
+ PE_4, // D16
39
+ PC_1, // D17
40
+ PC_0, // D18
41
+ PB_2, // D19
42
+ PD_0, // D20
43
+ PB_8, // D21
44
+ PB_9, // D22
45
+ PC_13, // D23
46
+ PB_12, // D24
47
+ PB_0, // D25
48
+ PD_1, // D26
49
+ PB_6, // D27
50
+ PB_7, // D28
51
+ PC_10, // D29
52
+ PH_3, // D30
53
+ PC_11, // D31
54
+ PC_12, // D32
55
+ PA_0, // D33
56
+ PA_3, // D34
57
+ PA_10, // D35
58
+ PA_12, // D36
59
+ PB_1, // D37
60
+ PB_10, // D38
61
+ PB_11, // D39
62
+ PA_11, // D40
63
+ PB_4, // D41
64
+ PB_5, // D42
65
+ PA_1, // D43
66
66
};
67
67
68
68
// Analog (Ax) pin number array
69
69
const uint32_t analogInputPin[] = {
70
- 3 , // A0
71
- 0 , // A1
72
- 4 , // A2
73
- 1 , // A3
74
- 10 , // A4
75
- 2 // A5
70
+ 3 , // A0
71
+ 0 , // A1
72
+ 4 , // A2
73
+ 1 , // A3
74
+ 10 , // A4
75
+ 2 // A5
76
76
};
77
77
78
78
// ----------------------------------------------------------------------------
@@ -87,72 +87,72 @@ extern "C" {
87
87
*/
88
88
WEAK void SystemClock_Config (void )
89
89
{
90
- RCC_OscInitTypeDef RCC_OscInitStruct = {};
91
- RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
92
- RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {};
90
+ RCC_OscInitTypeDef RCC_OscInitStruct = {};
91
+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
92
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {};
93
93
94
- /* This prevents concurrent access to RCC registers by CPU2 (M0+) */
95
- hsem_lock (CFG_HW_RCC_SEMID, HSEM_LOCK_DEFAULT_RETRY);
94
+ /* This prevents concurrent access to RCC registers by CPU2 (M0+) */
95
+ hsem_lock (CFG_HW_RCC_SEMID, HSEM_LOCK_DEFAULT_RETRY);
96
96
97
- __HAL_RCC_LSEDRIVE_CONFIG (RCC_LSEDRIVE_LOW);
98
- __HAL_PWR_VOLTAGESCALING_CONFIG (PWR_REGULATOR_VOLTAGE_SCALE1);
97
+ __HAL_RCC_LSEDRIVE_CONFIG (RCC_LSEDRIVE_LOW);
98
+ __HAL_PWR_VOLTAGESCALING_CONFIG (PWR_REGULATOR_VOLTAGE_SCALE1);
99
99
100
- /* This prevents the CPU2 (M0+) to disable the HSI48 oscillator */
101
- hsem_lock (CFG_HW_CLK48_CONFIG_SEMID, HSEM_LOCK_DEFAULT_RETRY);
100
+ /* This prevents the CPU2 (M0+) to disable the HSI48 oscillator */
101
+ hsem_lock (CFG_HW_CLK48_CONFIG_SEMID, HSEM_LOCK_DEFAULT_RETRY);
102
102
103
- /* Initializes the CPU, AHB and APB busses clocks */
104
- RCC_OscInitStruct.OscillatorType =
105
- RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSI48 | RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_LSE;
106
- RCC_OscInitStruct.HSEState = RCC_HSE_ON;
107
- RCC_OscInitStruct.LSEState = RCC_LSE_ON;
108
- RCC_OscInitStruct.HSIState = RCC_HSI_ON;
109
- RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
110
- RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
111
- RCC_OscInitStruct.PLL .PLLState = RCC_PLL_ON;
112
- RCC_OscInitStruct.PLL .PLLSource = RCC_PLLSOURCE_HSI;
113
- RCC_OscInitStruct.PLL .PLLM = RCC_PLLM_DIV2;
114
- RCC_OscInitStruct.PLL .PLLN = 16 ;
115
- RCC_OscInitStruct.PLL .PLLP = RCC_PLLP_DIV2;
116
- RCC_OscInitStruct.PLL .PLLR = RCC_PLLR_DIV2;
117
- RCC_OscInitStruct.PLL .PLLQ = RCC_PLLQ_DIV2;
118
- if (HAL_RCC_OscConfig (&RCC_OscInitStruct) != HAL_OK) {
119
- Error_Handler ();
120
- }
103
+ /* Initializes the CPU, AHB and APB busses clocks */
104
+ RCC_OscInitStruct.OscillatorType =
105
+ RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSI48 | RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_LSE;
106
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
107
+ RCC_OscInitStruct.LSEState = RCC_LSE_ON;
108
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
109
+ RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
110
+ RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
111
+ RCC_OscInitStruct.PLL .PLLState = RCC_PLL_ON;
112
+ RCC_OscInitStruct.PLL .PLLSource = RCC_PLLSOURCE_HSI;
113
+ RCC_OscInitStruct.PLL .PLLM = RCC_PLLM_DIV2;
114
+ RCC_OscInitStruct.PLL .PLLN = 16 ;
115
+ RCC_OscInitStruct.PLL .PLLP = RCC_PLLP_DIV2;
116
+ RCC_OscInitStruct.PLL .PLLR = RCC_PLLR_DIV2;
117
+ RCC_OscInitStruct.PLL .PLLQ = RCC_PLLQ_DIV2;
118
+ if (HAL_RCC_OscConfig (&RCC_OscInitStruct) != HAL_OK) {
119
+ Error_Handler ();
120
+ }
121
121
122
- /* Configure the SYSCLKSource, HCLK, PCLK1 and PCLK2 clocks dividers */
123
- RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK4 | RCC_CLOCKTYPE_HCLK2 | RCC_CLOCKTYPE_HCLK |
124
- RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
125
- RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;
126
- RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
127
- RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
128
- RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
129
- RCC_ClkInitStruct.AHBCLK2Divider = RCC_SYSCLK_DIV1;
130
- RCC_ClkInitStruct.AHBCLK4Divider = RCC_SYSCLK_DIV1;
131
- if (HAL_RCC_ClockConfig (&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {
132
- Error_Handler ();
133
- }
122
+ /* Configure the SYSCLKSource, HCLK, PCLK1 and PCLK2 clocks dividers */
123
+ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK4 | RCC_CLOCKTYPE_HCLK2 | RCC_CLOCKTYPE_HCLK |
124
+ RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
125
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;
126
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
127
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
128
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
129
+ RCC_ClkInitStruct.AHBCLK2Divider = RCC_SYSCLK_DIV1;
130
+ RCC_ClkInitStruct.AHBCLK4Divider = RCC_SYSCLK_DIV1;
131
+ if (HAL_RCC_ClockConfig (&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {
132
+ Error_Handler ();
133
+ }
134
134
135
- /* Initializes the peripherals clocks */
136
- /* RNG needs to be configured like in M0 core, i.e. with HSI48 */
137
- PeriphClkInitStruct.PeriphClockSelection =
138
- RCC_PERIPHCLK_SMPS | RCC_PERIPHCLK_RFWAKEUP | RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB;
139
- PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
140
- PeriphClkInitStruct.RngClockSelection = RCC_RNGCLKSOURCE_HSI48;
141
- PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSE;
142
- PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSE;
143
- PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE1;
144
- if (HAL_RCCEx_PeriphCLKConfig (&PeriphClkInitStruct) != HAL_OK) {
145
- Error_Handler ();
146
- }
135
+ /* Initializes the peripherals clocks */
136
+ /* RNG needs to be configured like in M0 core, i.e. with HSI48 */
137
+ PeriphClkInitStruct.PeriphClockSelection =
138
+ RCC_PERIPHCLK_SMPS | RCC_PERIPHCLK_RFWAKEUP | RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB;
139
+ PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
140
+ PeriphClkInitStruct.RngClockSelection = RCC_RNGCLKSOURCE_HSI48;
141
+ PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSE;
142
+ PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSE;
143
+ PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE1;
144
+ if (HAL_RCCEx_PeriphCLKConfig (&PeriphClkInitStruct) != HAL_OK) {
145
+ Error_Handler ();
146
+ }
147
147
148
- LL_PWR_SMPS_SetStartupCurrent (LL_PWR_SMPS_STARTUP_CURRENT_80MA);
149
- LL_PWR_SMPS_SetOutputVoltageLevel (LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
150
- LL_PWR_SMPS_Enable ();
148
+ LL_PWR_SMPS_SetStartupCurrent (LL_PWR_SMPS_STARTUP_CURRENT_80MA);
149
+ LL_PWR_SMPS_SetOutputVoltageLevel (LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
150
+ LL_PWR_SMPS_Enable ();
151
151
152
- /* Select HSI as system clock source after Wake Up from Stop mode */
153
- LL_RCC_SetClkAfterWakeFromStop (LL_RCC_STOP_WAKEUPCLOCK_HSI);
152
+ /* Select HSI as system clock source after Wake Up from Stop mode */
153
+ LL_RCC_SetClkAfterWakeFromStop (LL_RCC_STOP_WAKEUPCLOCK_HSI);
154
154
155
- hsem_unlock (CFG_HW_RCC_SEMID);
155
+ hsem_unlock (CFG_HW_RCC_SEMID);
156
156
}
157
157
158
158
#ifdef __cplusplus
0 commit comments