Changeset 81 for ctrl/firmware/Main/CubeMX/Core
- Timestamp:
- Feb 5, 2025, 9:37:56 AM (3 months ago)
- Location:
- ctrl/firmware/Main/CubeMX/Core
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
ctrl/firmware/Main/CubeMX/Core/Inc/main.h
r77 r81 58 58 59 59 /* Private defines -----------------------------------------------------------*/ 60 #define USART_MODBUS_MASTER_RX_Pin GPIO_PIN_2 61 #define USART_MODBUS_MASTER_RX_GPIO_Port GPIOE 62 #define USART_MODBUS_MASTER_TX_Pin GPIO_PIN_3 63 #define USART_MODBUS_MASTER_TX_GPIO_Port GPIOE 60 64 #define TX1_LED_Pin GPIO_PIN_6 61 65 #define TX1_LED_GPIO_Port GPIOE … … 96 100 #define ETH_SPI_PWR_Pin GPIO_PIN_3 97 101 #define ETH_SPI_PWR_GPIO_Port GPIOD 102 #define USART_MODBUS_SLAVE_DE_Pin GPIO_PIN_4 103 #define USART_MODBUS_SLAVE_DE_GPIO_Port GPIOD 104 #define USART_MODBUS_SLAVE_TX_Pin GPIO_PIN_5 105 #define USART_MODBUS_SLAVE_TX_GPIO_Port GPIOD 106 #define USART_MODBUS_SLAVE_RX_Pin GPIO_PIN_6 107 #define USART_MODBUS_SLAVE_RX_GPIO_Port GPIOD 98 108 #define OUTPUT_ON_LED_Pin GPIO_PIN_7 99 109 #define OUTPUT_ON_LED_GPIO_Port GPIOD … … 108 118 #define TX2_LED_Pin GPIO_PIN_13 109 119 #define TX2_LED_GPIO_Port GPIOG 120 #define USART_MODBUS_MASTER_DE_Pin GPIO_PIN_14 121 #define USART_MODBUS_MASTER_DE_GPIO_Port GPIOG 110 122 #define BUZZER_Pin GPIO_PIN_15 111 123 #define BUZZER_GPIO_Port GPIOG -
ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_it.h
r79 r81 61 61 void TIM3_IRQHandler(void); 62 62 void SPI2_IRQHandler(void); 63 void USART2_IRQHandler(void); 63 64 void USART3_IRQHandler(void); 64 65 void TIM8_CC_IRQHandler(void); … … 66 67 void TIM7_IRQHandler(void); 67 68 void SPI4_IRQHandler(void); 69 void USART10_IRQHandler(void); 68 70 /* USER CODE BEGIN EFP */ 69 71 -
ctrl/firmware/Main/CubeMX/Core/Inc/usart.h
r61 r81 33 33 /* USER CODE END Includes */ 34 34 35 extern UART_HandleTypeDef huart2; 36 35 37 extern UART_HandleTypeDef huart3; 38 39 extern UART_HandleTypeDef huart10; 36 40 37 41 /* USER CODE BEGIN Private defines */ … … 39 43 /* USER CODE END Private defines */ 40 44 45 void MX_USART2_UART_Init(void); 41 46 void MX_USART3_UART_Init(void); 47 void MX_USART10_UART_Init(void); 42 48 43 49 /* USER CODE BEGIN Prototypes */ -
ctrl/firmware/Main/CubeMX/Core/Src/gpio.c
r77 r81 79 79 HAL_GPIO_WritePin(ETH_SPI_RST_GPIO_Port, ETH_SPI_RST_Pin, GPIO_PIN_RESET); 80 80 81 /*Configure GPIO pins : PE2 PE3 PE4 PE5 82 PE8 PE9 PE10 PE0 83 PE1 */ 84 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5 85 |GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0 86 |GPIO_PIN_1; 81 /*Configure GPIO pins : PE4 PE5 PE8 PE9 82 PE10 PE0 PE1 */ 83 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_9 84 |GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_1; 87 85 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; 88 86 GPIO_InitStruct.Pull = GPIO_NOPULL; … … 167 165 HAL_GPIO_Init(GSM_STATUS_GPIO_Port, &GPIO_InitStruct); 168 166 169 /*Configure GPIO pins : PD14 PD15 PD0 PD1 170 PD4 PD5 PD6 */ 171 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1 172 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6; 167 /*Configure GPIO pins : PD14 PD15 PD0 PD1 */ 168 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1; 173 169 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; 174 170 GPIO_InitStruct.Pull = GPIO_NOPULL; … … 176 172 177 173 /*Configure GPIO pins : PG2 PG3 PG4 PG5 178 PG6 PG7 PG8 PG14*/174 PG6 PG7 PG8 */ 179 175 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5 180 |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8 |GPIO_PIN_14;176 |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8; 181 177 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; 182 178 GPIO_InitStruct.Pull = GPIO_NOPULL; -
ctrl/firmware/Main/CubeMX/Core/Src/main.c
r78 r81 62 62 /* Private function prototypes -----------------------------------------------*/ 63 63 void SystemClock_Config(void); 64 void PeriphCommonClock_Config(void); 64 65 static void MPU_Config(void); 65 66 void MX_FREERTOS_Init(void); … … 110 111 /* Configure the system clock */ 111 112 SystemClock_Config(); 113 114 /* Configure the peripherals common clocks */ 115 PeriphCommonClock_Config(); 112 116 113 117 /* USER CODE BEGIN SysInit */ … … 128 132 MX_TIM8_Init(); 129 133 MX_SPI2_Init(); 134 MX_USART2_UART_Init(); 135 MX_USART10_UART_Init(); 130 136 /* USER CODE BEGIN 2 */ 131 137 … … 218 224 } 219 225 226 /** 227 * @brief Peripherals Common Clock Configuration 228 * @retval None 229 */ 230 void PeriphCommonClock_Config(void) 231 { 232 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; 233 234 /** Initializes the peripherals clock 235 */ 236 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART10|RCC_PERIPHCLK_USART2 237 |RCC_PERIPHCLK_USART3; 238 PeriphClkInitStruct.PLL3.PLL3M = 25; 239 PeriphClkInitStruct.PLL3.PLL3N = 200; 240 PeriphClkInitStruct.PLL3.PLL3P = 2; 241 PeriphClkInitStruct.PLL3.PLL3Q = 8; 242 PeriphClkInitStruct.PLL3.PLL3R = 2; 243 PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_0; 244 PeriphClkInitStruct.PLL3.PLL3VCOSEL = RCC_PLL3VCOMEDIUM; 245 PeriphClkInitStruct.PLL3.PLL3FRACN = 0; 246 PeriphClkInitStruct.Usart234578ClockSelection = RCC_USART234578CLKSOURCE_PLL3; 247 PeriphClkInitStruct.Usart16ClockSelection = RCC_USART16910CLKSOURCE_PLL3; 248 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) 249 { 250 Error_Handler(); 251 } 252 } 253 220 254 /* USER CODE BEGIN 4 */ 221 255 -
ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_it.c
r79 r81 70 70 extern DMA_HandleTypeDef hdma_usart3_rx; 71 71 extern DMA_HandleTypeDef hdma_usart3_tx; 72 extern UART_HandleTypeDef huart2; 72 73 extern UART_HandleTypeDef huart3; 74 extern UART_HandleTypeDef huart10; 73 75 extern TIM_HandleTypeDef htim7; 74 76 … … 288 290 289 291 /** 292 * @brief This function handles USART2 global interrupt. 293 */ 294 void USART2_IRQHandler(void) 295 { 296 /* USER CODE BEGIN USART2_IRQn 0 */ 297 298 /* USER CODE END USART2_IRQn 0 */ 299 HAL_UART_IRQHandler(&huart2); 300 /* USER CODE BEGIN USART2_IRQn 1 */ 301 302 /* USER CODE END USART2_IRQn 1 */ 303 } 304 305 /** 290 306 * @brief This function handles USART3 global interrupt. 291 307 */ … … 355 371 356 372 /* USER CODE END SPI4_IRQn 1 */ 373 } 374 375 /** 376 * @brief This function handles USART10 global interrupt. 377 */ 378 void USART10_IRQHandler(void) 379 { 380 /* USER CODE BEGIN USART10_IRQn 0 */ 381 382 /* USER CODE END USART10_IRQn 0 */ 383 HAL_UART_IRQHandler(&huart10); 384 /* USER CODE BEGIN USART10_IRQn 1 */ 385 386 /* USER CODE END USART10_IRQn 1 */ 357 387 } 358 388 -
ctrl/firmware/Main/CubeMX/Core/Src/usart.c
r72 r81 25 25 /* USER CODE END 0 */ 26 26 27 UART_HandleTypeDef huart2; 27 28 UART_HandleTypeDef huart3; 29 UART_HandleTypeDef huart10; 28 30 DMA_HandleTypeDef hdma_usart3_rx; 29 31 DMA_HandleTypeDef hdma_usart3_tx; 30 32 33 /* USART2 init function */ 34 35 void MX_USART2_UART_Init(void) 36 { 37 38 /* USER CODE BEGIN USART2_Init 0 */ 39 40 /* USER CODE END USART2_Init 0 */ 41 42 /* USER CODE BEGIN USART2_Init 1 */ 43 44 /* USER CODE END USART2_Init 1 */ 45 huart2.Instance = USART2; 46 huart2.Init.BaudRate = 115200; 47 huart2.Init.WordLength = UART_WORDLENGTH_8B; 48 huart2.Init.StopBits = UART_STOPBITS_1; 49 huart2.Init.Parity = UART_PARITY_NONE; 50 huart2.Init.Mode = UART_MODE_TX_RX; 51 huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; 52 huart2.Init.OverSampling = UART_OVERSAMPLING_16; 53 huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; 54 huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1; 55 huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; 56 if (HAL_RS485Ex_Init(&huart2, UART_DE_POLARITY_HIGH, 0, 0) != HAL_OK) 57 { 58 Error_Handler(); 59 } 60 if (HAL_UARTEx_SetTxFifoThreshold(&huart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK) 61 { 62 Error_Handler(); 63 } 64 if (HAL_UARTEx_SetRxFifoThreshold(&huart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK) 65 { 66 Error_Handler(); 67 } 68 if (HAL_UARTEx_DisableFifoMode(&huart2) != HAL_OK) 69 { 70 Error_Handler(); 71 } 72 /* USER CODE BEGIN USART2_Init 2 */ 73 74 /* USER CODE END USART2_Init 2 */ 75 76 } 31 77 /* USART3 init function */ 32 78 … … 75 121 76 122 } 123 /* USART10 init function */ 124 125 void MX_USART10_UART_Init(void) 126 { 127 128 /* USER CODE BEGIN USART10_Init 0 */ 129 130 /* USER CODE END USART10_Init 0 */ 131 132 /* USER CODE BEGIN USART10_Init 1 */ 133 134 /* USER CODE END USART10_Init 1 */ 135 huart10.Instance = USART10; 136 huart10.Init.BaudRate = 115200; 137 huart10.Init.WordLength = UART_WORDLENGTH_8B; 138 huart10.Init.StopBits = UART_STOPBITS_1; 139 huart10.Init.Parity = UART_PARITY_NONE; 140 huart10.Init.Mode = UART_MODE_TX_RX; 141 huart10.Init.HwFlowCtl = UART_HWCONTROL_NONE; 142 huart10.Init.OverSampling = UART_OVERSAMPLING_16; 143 huart10.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; 144 huart10.Init.ClockPrescaler = UART_PRESCALER_DIV1; 145 huart10.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; 146 if (HAL_RS485Ex_Init(&huart10, UART_DE_POLARITY_HIGH, 0, 0) != HAL_OK) 147 { 148 Error_Handler(); 149 } 150 if (HAL_UARTEx_SetTxFifoThreshold(&huart10, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK) 151 { 152 Error_Handler(); 153 } 154 if (HAL_UARTEx_SetRxFifoThreshold(&huart10, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK) 155 { 156 Error_Handler(); 157 } 158 if (HAL_UARTEx_DisableFifoMode(&huart10) != HAL_OK) 159 { 160 Error_Handler(); 161 } 162 /* USER CODE BEGIN USART10_Init 2 */ 163 164 /* USER CODE END USART10_Init 2 */ 165 166 } 77 167 78 168 void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) … … 80 170 81 171 GPIO_InitTypeDef GPIO_InitStruct = {0}; 82 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; 83 if(uartHandle->Instance==USART3) 172 if(uartHandle->Instance==USART2) 173 { 174 /* USER CODE BEGIN USART2_MspInit 0 */ 175 176 /* USER CODE END USART2_MspInit 0 */ 177 /* USART2 clock enable */ 178 __HAL_RCC_USART2_CLK_ENABLE(); 179 180 __HAL_RCC_GPIOD_CLK_ENABLE(); 181 /**USART2 GPIO Configuration 182 PD4 ------> USART2_DE 183 PD5 ------> USART2_TX 184 PD6 ------> USART2_RX 185 */ 186 GPIO_InitStruct.Pin = USART_MODBUS_SLAVE_DE_Pin|USART_MODBUS_SLAVE_TX_Pin|USART_MODBUS_SLAVE_RX_Pin; 187 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 188 GPIO_InitStruct.Pull = GPIO_NOPULL; 189 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 190 GPIO_InitStruct.Alternate = GPIO_AF7_USART2; 191 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); 192 193 /* USART2 interrupt Init */ 194 HAL_NVIC_SetPriority(USART2_IRQn, 5, 0); 195 HAL_NVIC_EnableIRQ(USART2_IRQn); 196 /* USER CODE BEGIN USART2_MspInit 1 */ 197 198 /* USER CODE END USART2_MspInit 1 */ 199 } 200 else if(uartHandle->Instance==USART3) 84 201 { 85 202 /* USER CODE BEGIN USART3_MspInit 0 */ 86 203 87 204 /* USER CODE END USART3_MspInit 0 */ 88 89 /** Initializes the peripherals clock90 */91 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3;92 PeriphClkInitStruct.PLL3.PLL3M = 25;93 PeriphClkInitStruct.PLL3.PLL3N = 200;94 PeriphClkInitStruct.PLL3.PLL3P = 2;95 PeriphClkInitStruct.PLL3.PLL3Q = 8;96 PeriphClkInitStruct.PLL3.PLL3R = 2;97 PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_0;98 PeriphClkInitStruct.PLL3.PLL3VCOSEL = RCC_PLL3VCOMEDIUM;99 PeriphClkInitStruct.PLL3.PLL3FRACN = 0;100 PeriphClkInitStruct.Usart234578ClockSelection = RCC_USART234578CLKSOURCE_PLL3;101 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)102 {103 Error_Handler();104 }105 106 205 /* USART3 clock enable */ 107 206 __HAL_RCC_USART3_CLK_ENABLE(); … … 165 264 /* USER CODE END USART3_MspInit 1 */ 166 265 } 266 else if(uartHandle->Instance==USART10) 267 { 268 /* USER CODE BEGIN USART10_MspInit 0 */ 269 270 /* USER CODE END USART10_MspInit 0 */ 271 /* USART10 clock enable */ 272 __HAL_RCC_USART10_CLK_ENABLE(); 273 274 __HAL_RCC_GPIOE_CLK_ENABLE(); 275 __HAL_RCC_GPIOG_CLK_ENABLE(); 276 /**USART10 GPIO Configuration 277 PE2 ------> USART10_RX 278 PE3 ------> USART10_TX 279 PG14 ------> USART10_DE 280 */ 281 GPIO_InitStruct.Pin = USART_MODBUS_MASTER_RX_Pin; 282 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 283 GPIO_InitStruct.Pull = GPIO_NOPULL; 284 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 285 GPIO_InitStruct.Alternate = GPIO_AF4_USART10; 286 HAL_GPIO_Init(USART_MODBUS_MASTER_RX_GPIO_Port, &GPIO_InitStruct); 287 288 GPIO_InitStruct.Pin = USART_MODBUS_MASTER_TX_Pin; 289 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 290 GPIO_InitStruct.Pull = GPIO_NOPULL; 291 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 292 GPIO_InitStruct.Alternate = GPIO_AF11_USART10; 293 HAL_GPIO_Init(USART_MODBUS_MASTER_TX_GPIO_Port, &GPIO_InitStruct); 294 295 GPIO_InitStruct.Pin = USART_MODBUS_MASTER_DE_Pin; 296 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 297 GPIO_InitStruct.Pull = GPIO_NOPULL; 298 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 299 GPIO_InitStruct.Alternate = GPIO_AF4_USART10; 300 HAL_GPIO_Init(USART_MODBUS_MASTER_DE_GPIO_Port, &GPIO_InitStruct); 301 302 /* USART10 interrupt Init */ 303 HAL_NVIC_SetPriority(USART10_IRQn, 5, 0); 304 HAL_NVIC_EnableIRQ(USART10_IRQn); 305 /* USER CODE BEGIN USART10_MspInit 1 */ 306 307 /* USER CODE END USART10_MspInit 1 */ 308 } 167 309 } 168 310 … … 170 312 { 171 313 172 if(uartHandle->Instance==USART3) 314 if(uartHandle->Instance==USART2) 315 { 316 /* USER CODE BEGIN USART2_MspDeInit 0 */ 317 318 /* USER CODE END USART2_MspDeInit 0 */ 319 /* Peripheral clock disable */ 320 __HAL_RCC_USART2_CLK_DISABLE(); 321 322 /**USART2 GPIO Configuration 323 PD4 ------> USART2_DE 324 PD5 ------> USART2_TX 325 PD6 ------> USART2_RX 326 */ 327 HAL_GPIO_DeInit(GPIOD, USART_MODBUS_SLAVE_DE_Pin|USART_MODBUS_SLAVE_TX_Pin|USART_MODBUS_SLAVE_RX_Pin); 328 329 /* USART2 interrupt Deinit */ 330 HAL_NVIC_DisableIRQ(USART2_IRQn); 331 /* USER CODE BEGIN USART2_MspDeInit 1 */ 332 333 /* USER CODE END USART2_MspDeInit 1 */ 334 } 335 else if(uartHandle->Instance==USART3) 173 336 { 174 337 /* USER CODE BEGIN USART3_MspDeInit 0 */ … … 196 359 /* USER CODE END USART3_MspDeInit 1 */ 197 360 } 361 else if(uartHandle->Instance==USART10) 362 { 363 /* USER CODE BEGIN USART10_MspDeInit 0 */ 364 365 /* USER CODE END USART10_MspDeInit 0 */ 366 /* Peripheral clock disable */ 367 __HAL_RCC_USART10_CLK_DISABLE(); 368 369 /**USART10 GPIO Configuration 370 PE2 ------> USART10_RX 371 PE3 ------> USART10_TX 372 PG14 ------> USART10_DE 373 */ 374 HAL_GPIO_DeInit(GPIOE, USART_MODBUS_MASTER_RX_Pin|USART_MODBUS_MASTER_TX_Pin); 375 376 HAL_GPIO_DeInit(USART_MODBUS_MASTER_DE_GPIO_Port, USART_MODBUS_MASTER_DE_Pin); 377 378 /* USART10 interrupt Deinit */ 379 HAL_NVIC_DisableIRQ(USART10_IRQn); 380 /* USER CODE BEGIN USART10_MspDeInit 1 */ 381 382 /* USER CODE END USART10_MspDeInit 1 */ 383 } 198 384 } 199 385
Note: See TracChangeset
for help on using the changeset viewer.