Rev 8 | Rev 11 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 8 | Rev 9 | ||
|---|---|---|---|
| Line 21... | Line 21... | ||
| 21 | #include "main.h" |
21 | #include "main.h" |
| 22 | 22 | ||
| 23 | /* Private includes ----------------------------------------------------------*/ |
23 | /* Private includes ----------------------------------------------------------*/ |
| 24 | /* USER CODE BEGIN Includes */ |
24 | /* USER CODE BEGIN Includes */ |
| 25 | #include "libSerial/serial.h" |
25 | #include "libSerial/serial.h" |
| 26 | #include "nmea.h" |
- | |
| - | 26 | ||
| 27 | #include "display.h" |
27 | #include "display.h" |
| 28 | /* USER CODE END Includes */ |
28 | /* USER CODE END Includes */ |
| 29 | 29 | ||
| 30 | /* Private typedef -----------------------------------------------------------*/ |
30 | /* Private typedef -----------------------------------------------------------*/ |
| 31 | /* USER CODE BEGIN PTD */ |
31 | /* USER CODE BEGIN PTD */ |
| Line 44... | Line 44... | ||
| 44 | /* Private variables ---------------------------------------------------------*/ |
44 | /* Private variables ---------------------------------------------------------*/ |
| 45 | CAN_HandleTypeDef hcan; |
45 | CAN_HandleTypeDef hcan; |
| 46 | 46 | ||
| 47 | SPI_HandleTypeDef hspi1; |
47 | SPI_HandleTypeDef hspi1; |
| 48 | 48 | ||
| - | 49 | TIM_HandleTypeDef htim3; |
|
| 49 | TIM_HandleTypeDef htim4; |
50 | TIM_HandleTypeDef htim4; |
| 50 | 51 | ||
| 51 | UART_HandleTypeDef huart1; |
52 | UART_HandleTypeDef huart1; |
| 52 | 53 | ||
| 53 | /* USER CODE BEGIN PV */ |
54 | /* USER CODE BEGIN PV */ |
| 54 | 55 | ||
| 55 | /* USER CODE END PV */ |
56 | /* USER CODE END PV */ |
| 56 | 57 | ||
| 57 | /* Private function prototypes -----------------------------------------------*/ |
58 | /* Private function prototypes -----------------------------------------------*/ |
| 58 | void |
- | |
| 59 | SystemClock_Config (void); |
59 | void SystemClock_Config(void); |
| 60 | static void |
- | |
| 61 | MX_GPIO_Init (void); |
60 | static void MX_GPIO_Init(void); |
| 62 | static void |
- | |
| 63 | MX_CAN_Init (void); |
61 | static void MX_CAN_Init(void); |
| 64 | static void |
- | |
| 65 | MX_SPI1_Init (void); |
62 | static void MX_SPI1_Init(void); |
| 66 | static void |
- | |
| 67 | MX_TIM4_Init (void); |
63 | static void MX_TIM4_Init(void); |
| 68 | static void |
64 | static void MX_USART1_UART_Init(void); |
| 69 | MX_USART1_UART_Init (void); |
65 | static void MX_TIM3_Init(void); |
| 70 | /* USER CODE BEGIN PFP */ |
66 | /* USER CODE BEGIN PFP */ |
| 71 | 67 | ||
| 72 | /* USER CODE END PFP */ |
68 | /* USER CODE END PFP */ |
| 73 | 69 | ||
| 74 | /* Private user code ---------------------------------------------------------*/ |
70 | /* Private user code ---------------------------------------------------------*/ |
| 75 | /* USER CODE BEGIN 0 */ |
71 | /* USER CODE BEGIN 0 */ |
| 76 | 72 | ||
| 77 | /* USER CODE END 0 */ |
73 | /* USER CODE END 0 */ |
| 78 | 74 | ||
| 79 | /** |
75 | /** |
| 80 | * @brief The application entry point. |
76 | * @brief The application entry point. |
| 81 | * @retval int |
77 | * @retval int |
| 82 | */ |
78 | */ |
| 83 | int |
- | |
| 84 | main (void) |
79 | int main(void) |
| 85 | { |
80 | { |
| 86 | /* USER CODE BEGIN 1 */ |
81 | /* USER CODE BEGIN 1 */ |
| 87 | 82 | ||
| 88 | /* USER CODE END 1 */ |
83 | /* USER CODE END 1 */ |
| 89 | 84 | ||
| 90 | /* MCU Configuration--------------------------------------------------------*/ |
85 | /* MCU Configuration--------------------------------------------------------*/ |
| 91 | 86 | ||
| 92 | /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ |
87 | /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ |
| 93 | HAL_Init (); |
88 | HAL_Init(); |
| 94 | 89 | ||
| 95 | /* USER CODE BEGIN Init */ |
90 | /* USER CODE BEGIN Init */ |
| 96 | 91 | ||
| 97 | /* USER CODE END Init */ |
92 | /* USER CODE END Init */ |
| 98 | 93 | ||
| 99 | /* Configure the system clock */ |
94 | /* Configure the system clock */ |
| 100 | SystemClock_Config (); |
95 | SystemClock_Config(); |
| 101 | 96 | ||
| 102 | /* USER CODE BEGIN SysInit */ |
97 | /* USER CODE BEGIN SysInit */ |
| 103 | 98 | ||
| 104 | /* USER CODE END SysInit */ |
99 | /* USER CODE END SysInit */ |
| 105 | 100 | ||
| 106 | /* Initialize all configured peripherals */ |
101 | /* Initialize all configured peripherals */ |
| 107 | MX_GPIO_Init (); |
102 | MX_GPIO_Init(); |
| 108 | MX_CAN_Init (); |
103 | MX_CAN_Init(); |
| 109 | MX_SPI1_Init (); |
104 | MX_SPI1_Init(); |
| 110 | MX_TIM4_Init (); |
105 | MX_TIM4_Init(); |
| 111 | MX_USART1_UART_Init (); |
106 | MX_USART1_UART_Init(); |
| - | 107 | MX_TIM3_Init(); |
|
| 112 | /* USER CODE BEGIN 2 */ |
108 | /* USER CODE BEGIN 2 */ |
| 113 | __HAL_RCC_USART1_CLK_ENABLE(); |
109 | __HAL_RCC_USART1_CLK_ENABLE(); |
| 114 | /* setup the USART control blocks */ |
110 | /* setup the USART control blocks */ |
| 115 | init_usart_ctl (&uc1, huart1.Instance); |
111 | init_usart_ctl (&uc1, huart1.Instance); |
| 116 | 112 | ||
| Line 124... | Line 120... | ||
| 124 | /* USER CODE BEGIN WHILE */ |
120 | /* USER CODE BEGIN WHILE */ |
| 125 | while (1) |
121 | while (1) |
| 126 | { |
122 | { |
| 127 | cc_run (); |
123 | cc_run (); |
| 128 | 124 | ||
| 129 | Location loc; |
- | |
| 130 | uint8_t stat = updateLocation (&loc); |
- | |
| 131 | 125 | ||
| 132 | HAL_Delay (10); |
126 | HAL_Delay (50); |
| 133 | 127 | ||
| 134 | /* USER CODE END WHILE */ |
128 | /* USER CODE END WHILE */ |
| 135 | 129 | ||
| 136 | /* USER CODE BEGIN 3 */ |
130 | /* USER CODE BEGIN 3 */ |
| 137 | } |
131 | } |
| 138 | /* USER CODE END 3 */ |
132 | /* USER CODE END 3 */ |
| 139 | } |
133 | } |
| 140 | 134 | ||
| 141 | /** |
135 | /** |
| 142 | * @brief System Clock Configuration |
136 | * @brief System Clock Configuration |
| 143 | * @retval None |
137 | * @retval None |
| 144 | */ |
138 | */ |
| 145 | void |
- | |
| 146 | SystemClock_Config (void) |
139 | void SystemClock_Config(void) |
| 147 | { |
140 | { |
| 148 | RCC_OscInitTypeDef RCC_OscInitStruct = |
141 | RCC_OscInitTypeDef RCC_OscInitStruct = {0}; |
| 149 | { 0 }; |
- | |
| 150 | RCC_ClkInitTypeDef RCC_ClkInitStruct = |
142 | RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; |
| 151 | { 0 }; |
- | |
| 152 | 143 | ||
| 153 | /** Initializes the RCC Oscillators according to the specified parameters |
144 | /** Initializes the RCC Oscillators according to the specified parameters |
| 154 | * in the RCC_OscInitTypeDef structure. |
145 | * in the RCC_OscInitTypeDef structure. |
| 155 | */ |
146 | */ |
| 156 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; |
147 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; |
| 157 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
148 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
| 158 | RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; |
149 | RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; |
| 159 | RCC_OscInitStruct.HSIState = RCC_HSI_ON; |
150 | RCC_OscInitStruct.HSIState = RCC_HSI_ON; |
| 160 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
151 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
| 161 | RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; |
152 | RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; |
| 162 | RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8; |
153 | RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8; |
| 163 | if (HAL_RCC_OscConfig (&RCC_OscInitStruct) != HAL_OK) |
154 | if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) |
| 164 | { |
155 | { |
| 165 | Error_Handler (); |
156 | Error_Handler(); |
| 166 | } |
157 | } |
| 167 | /** Initializes the CPU, AHB and APB buses clocks |
158 | /** Initializes the CPU, AHB and APB buses clocks |
| 168 | */ |
159 | */ |
| 169 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |
160 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |
| 170 | | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; |
161 | |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; |
| 171 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
162 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
| 172 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
163 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
| 173 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; |
164 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; |
| 174 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
165 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
| 175 | 166 | ||
| 176 | if (HAL_RCC_ClockConfig (&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) |
167 | if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) |
| 177 | { |
168 | { |
| 178 | Error_Handler (); |
169 | Error_Handler(); |
| 179 | } |
170 | } |
| 180 | } |
171 | } |
| 181 | 172 | ||
| 182 | /** |
173 | /** |
| 183 | * @brief CAN Initialization Function |
174 | * @brief CAN Initialization Function |
| 184 | * @param None |
175 | * @param None |
| 185 | * @retval None |
176 | * @retval None |
| 186 | */ |
177 | */ |
| 187 | static void |
- | |
| 188 | MX_CAN_Init (void) |
178 | static void MX_CAN_Init(void) |
| 189 | { |
179 | { |
| 190 | 180 | ||
| 191 | /* USER CODE BEGIN CAN_Init 0 */ |
181 | /* USER CODE BEGIN CAN_Init 0 */ |
| 192 | 182 | ||
| 193 | /* USER CODE END CAN_Init 0 */ |
183 | /* USER CODE END CAN_Init 0 */ |
| Line 205... | Line 195... | ||
| 205 | hcan.Init.AutoBusOff = DISABLE; |
195 | hcan.Init.AutoBusOff = DISABLE; |
| 206 | hcan.Init.AutoWakeUp = DISABLE; |
196 | hcan.Init.AutoWakeUp = DISABLE; |
| 207 | hcan.Init.AutoRetransmission = DISABLE; |
197 | hcan.Init.AutoRetransmission = DISABLE; |
| 208 | hcan.Init.ReceiveFifoLocked = DISABLE; |
198 | hcan.Init.ReceiveFifoLocked = DISABLE; |
| 209 | hcan.Init.TransmitFifoPriority = DISABLE; |
199 | hcan.Init.TransmitFifoPriority = DISABLE; |
| 210 | if (HAL_CAN_Init (&hcan) != HAL_OK) |
200 | if (HAL_CAN_Init(&hcan) != HAL_OK) |
| 211 | { |
201 | { |
| 212 | Error_Handler (); |
202 | Error_Handler(); |
| 213 | } |
203 | } |
| 214 | /* USER CODE BEGIN CAN_Init 2 */ |
204 | /* USER CODE BEGIN CAN_Init 2 */ |
| 215 | 205 | ||
| 216 | /* USER CODE END CAN_Init 2 */ |
206 | /* USER CODE END CAN_Init 2 */ |
| 217 | 207 | ||
| 218 | } |
208 | } |
| 219 | 209 | ||
| 220 | /** |
210 | /** |
| 221 | * @brief SPI1 Initialization Function |
211 | * @brief SPI1 Initialization Function |
| 222 | * @param None |
212 | * @param None |
| 223 | * @retval None |
213 | * @retval None |
| 224 | */ |
214 | */ |
| 225 | static void |
- | |
| 226 | MX_SPI1_Init (void) |
215 | static void MX_SPI1_Init(void) |
| 227 | { |
216 | { |
| 228 | 217 | ||
| 229 | /* USER CODE BEGIN SPI1_Init 0 */ |
218 | /* USER CODE BEGIN SPI1_Init 0 */ |
| 230 | 219 | ||
| 231 | /* USER CODE END SPI1_Init 0 */ |
220 | /* USER CODE END SPI1_Init 0 */ |
| Line 244... | Line 233... | ||
| 244 | hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; |
233 | hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; |
| 245 | hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; |
234 | hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; |
| 246 | hspi1.Init.TIMode = SPI_TIMODE_DISABLE; |
235 | hspi1.Init.TIMode = SPI_TIMODE_DISABLE; |
| 247 | hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; |
236 | hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; |
| 248 | hspi1.Init.CRCPolynomial = 10; |
237 | hspi1.Init.CRCPolynomial = 10; |
| 249 | if (HAL_SPI_Init (&hspi1) != HAL_OK) |
238 | if (HAL_SPI_Init(&hspi1) != HAL_OK) |
| 250 | { |
239 | { |
| 251 | Error_Handler (); |
240 | Error_Handler(); |
| 252 | } |
241 | } |
| 253 | /* USER CODE BEGIN SPI1_Init 2 */ |
242 | /* USER CODE BEGIN SPI1_Init 2 */ |
| 254 | 243 | ||
| 255 | /* USER CODE END SPI1_Init 2 */ |
244 | /* USER CODE END SPI1_Init 2 */ |
| 256 | 245 | ||
| 257 | } |
246 | } |
| 258 | 247 | ||
| 259 | /** |
248 | /** |
| 260 | * @brief TIM4 Initialization Function |
249 | * @brief TIM3 Initialization Function |
| 261 | * @param None |
250 | * @param None |
| 262 | * @retval None |
251 | * @retval None |
| 263 | */ |
252 | */ |
| - | 253 | static void MX_TIM3_Init(void) |
|
| - | 254 | { |
|
| - | 255 | ||
| - | 256 | /* USER CODE BEGIN TIM3_Init 0 */ |
|
| - | 257 | ||
| - | 258 | /* USER CODE END TIM3_Init 0 */ |
|
| - | 259 | ||
| - | 260 | TIM_MasterConfigTypeDef sMasterConfig = {0}; |
|
| - | 261 | TIM_OC_InitTypeDef sConfigOC = {0}; |
|
| - | 262 | ||
| - | 263 | /* USER CODE BEGIN TIM3_Init 1 */ |
|
| - | 264 | ||
| - | 265 | /* USER CODE END TIM3_Init 1 */ |
|
| - | 266 | htim3.Instance = TIM3; |
|
| - | 267 | htim3.Init.Prescaler = 640; |
|
| - | 268 | htim3.Init.CounterMode = TIM_COUNTERMODE_UP; |
|
| - | 269 | htim3.Init.Period = 10000; |
|
| - | 270 | htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; |
|
| - | 271 | htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; |
|
| - | 272 | if (HAL_TIM_OC_Init(&htim3) != HAL_OK) |
|
| - | 273 | { |
|
| - | 274 | Error_Handler(); |
|
| - | 275 | } |
|
| - | 276 | if (HAL_TIM_OnePulse_Init(&htim3, TIM_OPMODE_SINGLE) != HAL_OK) |
|
| - | 277 | { |
|
| - | 278 | Error_Handler(); |
|
| - | 279 | } |
|
| - | 280 | sMasterConfig.MasterOutputTrigger = TIM_TRGO_ENABLE; |
|
| - | 281 | sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; |
|
| - | 282 | if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) |
|
| - | 283 | { |
|
| - | 284 | Error_Handler(); |
|
| - | 285 | } |
|
| - | 286 | sConfigOC.OCMode = TIM_OCMODE_TIMING; |
|
| - | 287 | sConfigOC.Pulse = 9999; |
|
| - | 288 | sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; |
|
| - | 289 | sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; |
|
| - | 290 | if (HAL_TIM_OC_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) |
|
| - | 291 | { |
|
| - | 292 | Error_Handler(); |
|
| - | 293 | } |
|
| - | 294 | /* USER CODE BEGIN TIM3_Init 2 */ |
|
| - | 295 | ||
| - | 296 | /* USER CODE END TIM3_Init 2 */ |
|
| - | 297 | ||
| - | 298 | } |
|
| - | 299 | ||
| - | 300 | /** |
|
| - | 301 | * @brief TIM4 Initialization Function |
|
| 264 | static void |
302 | * @param None |
| - | 303 | * @retval None |
|
| - | 304 | */ |
|
| 265 | MX_TIM4_Init (void) |
305 | static void MX_TIM4_Init(void) |
| 266 | { |
306 | { |
| 267 | 307 | ||
| 268 | /* USER CODE BEGIN TIM4_Init 0 */ |
308 | /* USER CODE BEGIN TIM4_Init 0 */ |
| 269 | 309 | ||
| 270 | /* USER CODE END TIM4_Init 0 */ |
310 | /* USER CODE END TIM4_Init 0 */ |
| 271 | 311 | ||
| 272 | TIM_Encoder_InitTypeDef sConfig = |
312 | TIM_Encoder_InitTypeDef sConfig = {0}; |
| 273 | { 0 }; |
- | |
| 274 | TIM_MasterConfigTypeDef sMasterConfig = |
313 | TIM_MasterConfigTypeDef sMasterConfig = {0}; |
| 275 | { 0 }; |
- | |
| 276 | 314 | ||
| 277 | /* USER CODE BEGIN TIM4_Init 1 */ |
315 | /* USER CODE BEGIN TIM4_Init 1 */ |
| 278 | 316 | ||
| 279 | /* USER CODE END TIM4_Init 1 */ |
317 | /* USER CODE END TIM4_Init 1 */ |
| 280 | htim4.Instance = TIM4; |
318 | htim4.Instance = TIM4; |
| Line 290... | Line 328... | ||
| 290 | sConfig.IC1Filter = 8; |
328 | sConfig.IC1Filter = 8; |
| 291 | sConfig.IC2Polarity = TIM_ICPOLARITY_RISING; |
329 | sConfig.IC2Polarity = TIM_ICPOLARITY_RISING; |
| 292 | sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI; |
330 | sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI; |
| 293 | sConfig.IC2Prescaler = TIM_ICPSC_DIV1; |
331 | sConfig.IC2Prescaler = TIM_ICPSC_DIV1; |
| 294 | sConfig.IC2Filter = 8; |
332 | sConfig.IC2Filter = 8; |
| 295 | if (HAL_TIM_Encoder_Init (&htim4, &sConfig) != HAL_OK) |
333 | if (HAL_TIM_Encoder_Init(&htim4, &sConfig) != HAL_OK) |
| 296 | { |
334 | { |
| 297 | Error_Handler (); |
335 | Error_Handler(); |
| 298 | } |
336 | } |
| 299 | sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; |
337 | sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; |
| 300 | sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; |
338 | sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; |
| 301 | if (HAL_TIMEx_MasterConfigSynchronization (&htim4, &sMasterConfig) != HAL_OK) |
339 | if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK) |
| 302 | { |
340 | { |
| 303 | Error_Handler (); |
341 | Error_Handler(); |
| 304 | } |
342 | } |
| 305 | /* USER CODE BEGIN TIM4_Init 2 */ |
343 | /* USER CODE BEGIN TIM4_Init 2 */ |
| 306 | 344 | ||
| 307 | /* USER CODE END TIM4_Init 2 */ |
345 | /* USER CODE END TIM4_Init 2 */ |
| 308 | 346 | ||
| 309 | } |
347 | } |
| 310 | 348 | ||
| 311 | /** |
349 | /** |
| 312 | * @brief USART1 Initialization Function |
350 | * @brief USART1 Initialization Function |
| 313 | * @param None |
351 | * @param None |
| 314 | * @retval None |
352 | * @retval None |
| 315 | */ |
353 | */ |
| 316 | static void |
- | |
| 317 | MX_USART1_UART_Init (void) |
354 | static void MX_USART1_UART_Init(void) |
| 318 | { |
355 | { |
| 319 | 356 | ||
| 320 | /* USER CODE BEGIN USART1_Init 0 */ |
357 | /* USER CODE BEGIN USART1_Init 0 */ |
| 321 | 358 | ||
| 322 | /* USER CODE END USART1_Init 0 */ |
359 | /* USER CODE END USART1_Init 0 */ |
| Line 330... | Line 367... | ||
| 330 | huart1.Init.StopBits = UART_STOPBITS_1; |
367 | huart1.Init.StopBits = UART_STOPBITS_1; |
| 331 | huart1.Init.Parity = UART_PARITY_NONE; |
368 | huart1.Init.Parity = UART_PARITY_NONE; |
| 332 | huart1.Init.Mode = UART_MODE_TX_RX; |
369 | huart1.Init.Mode = UART_MODE_TX_RX; |
| 333 | huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; |
370 | huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; |
| 334 | huart1.Init.OverSampling = UART_OVERSAMPLING_16; |
371 | huart1.Init.OverSampling = UART_OVERSAMPLING_16; |
| 335 | if (HAL_UART_Init (&huart1) != HAL_OK) |
372 | if (HAL_UART_Init(&huart1) != HAL_OK) |
| 336 | { |
373 | { |
| 337 | Error_Handler (); |
374 | Error_Handler(); |
| 338 | } |
375 | } |
| 339 | /* USER CODE BEGIN USART1_Init 2 */ |
376 | /* USER CODE BEGIN USART1_Init 2 */ |
| 340 | 377 | ||
| 341 | /* USER CODE END USART1_Init 2 */ |
378 | /* USER CODE END USART1_Init 2 */ |
| 342 | 379 | ||
| 343 | } |
380 | } |
| 344 | 381 | ||
| 345 | /** |
382 | /** |
| 346 | * @brief GPIO Initialization Function |
383 | * @brief GPIO Initialization Function |
| 347 | * @param None |
384 | * @param None |
| 348 | * @retval None |
385 | * @retval None |
| 349 | */ |
386 | */ |
| 350 | static void |
- | |
| 351 | MX_GPIO_Init (void) |
387 | static void MX_GPIO_Init(void) |
| 352 | { |
388 | { |
| 353 | GPIO_InitTypeDef GPIO_InitStruct = |
389 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
| 354 | { 0 }; |
- | |
| 355 | 390 | ||
| 356 | /* GPIO Ports Clock Enable */ |
391 | /* GPIO Ports Clock Enable */ |
| 357 | __HAL_RCC_GPIOC_CLK_ENABLE(); |
392 | __HAL_RCC_GPIOC_CLK_ENABLE(); |
| 358 | __HAL_RCC_GPIOD_CLK_ENABLE(); |
393 | __HAL_RCC_GPIOD_CLK_ENABLE(); |
| 359 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
394 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
| 360 | __HAL_RCC_GPIOB_CLK_ENABLE(); |
395 | __HAL_RCC_GPIOB_CLK_ENABLE(); |
| 361 | 396 | ||
| 362 | /*Configure GPIO pin Output Level */ |
397 | /*Configure GPIO pin Output Level */ |
| 363 | HAL_GPIO_WritePin (GPIOC, SPI_CD_Pin | SPI_RESET_Pin, GPIO_PIN_RESET); |
398 | HAL_GPIO_WritePin(GPIOC, SPI_CD_Pin|SPI_RESET_Pin, GPIO_PIN_RESET); |
| 364 | 399 | ||
| 365 | /*Configure GPIO pin Output Level */ |
400 | /*Configure GPIO pin Output Level */ |
| 366 | HAL_GPIO_WritePin (SPI_NSS1_GPIO_Port, SPI_NSS1_Pin, GPIO_PIN_RESET); |
401 | HAL_GPIO_WritePin(SPI_NSS1_GPIO_Port, SPI_NSS1_Pin, GPIO_PIN_RESET); |
| 367 | 402 | ||
| 368 | /*Configure GPIO pins : SPI_CD_Pin SPI_RESET_Pin */ |
403 | /*Configure GPIO pins : SPI_CD_Pin SPI_RESET_Pin */ |
| 369 | GPIO_InitStruct.Pin = SPI_CD_Pin | SPI_RESET_Pin; |
404 | GPIO_InitStruct.Pin = SPI_CD_Pin|SPI_RESET_Pin; |
| 370 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
405 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| 371 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
406 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 372 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
407 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| 373 | HAL_GPIO_Init (GPIOC, &GPIO_InitStruct); |
408 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| 374 | 409 | ||
| 375 | /*Configure GPIO pin : SPI_NSS1_Pin */ |
410 | /*Configure GPIO pin : SPI_NSS1_Pin */ |
| 376 | GPIO_InitStruct.Pin = SPI_NSS1_Pin; |
411 | GPIO_InitStruct.Pin = SPI_NSS1_Pin; |
| 377 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
412 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| 378 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
413 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 379 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
414 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| 380 | HAL_GPIO_Init (SPI_NSS1_GPIO_Port, &GPIO_InitStruct); |
415 | HAL_GPIO_Init(SPI_NSS1_GPIO_Port, &GPIO_InitStruct); |
| 381 | 416 | ||
| 382 | } |
417 | } |
| 383 | 418 | ||
| 384 | /* USER CODE BEGIN 4 */ |
419 | /* USER CODE BEGIN 4 */ |
| 385 | 420 | ||
| 386 | /* USER CODE END 4 */ |
421 | /* USER CODE END 4 */ |
| 387 | 422 | ||
| 388 | /** |
423 | /** |
| 389 | * @brief This function is executed in case of error occurrence. |
424 | * @brief This function is executed in case of error occurrence. |
| 390 | * @retval None |
425 | * @retval None |
| 391 | */ |
426 | */ |
| 392 | void |
- | |
| 393 | Error_Handler (void) |
427 | void Error_Handler(void) |
| 394 | { |
428 | { |
| 395 | /* USER CODE BEGIN Error_Handler_Debug */ |
429 | /* USER CODE BEGIN Error_Handler_Debug */ |
| 396 | /* User can add his own implementation to report the HAL error return state */ |
430 | /* User can add his own implementation to report the HAL error return state */ |
| 397 | 431 | ||
| 398 | /* USER CODE END Error_Handler_Debug */ |
432 | /* USER CODE END Error_Handler_Debug */ |