Changeset 76 for ctrl/firmware/Main/CubeMX/Core
- Timestamp:
- Jan 31, 2025, 10:07:48 AM (3 months ago)
- Location:
- ctrl/firmware/Main/CubeMX/Core
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
ctrl/firmware/Main/CubeMX/Core/Inc/main.h
r66 r76 78 78 #define RST_DISPLAY_Pin GPIO_PIN_15 79 79 #define RST_DISPLAY_GPIO_Port GPIOE 80 #define ETH_SPI_SCK_Pin GPIO_PIN_10 81 #define ETH_SPI_SCK_GPIO_Port GPIOB 82 #define ETH_SPI_MISO_Pin GPIO_PIN_14 83 #define ETH_SPI_MISO_GPIO_Port GPIOB 84 #define ETH_SPI_MOSI_Pin GPIO_PIN_15 85 #define ETH_SPI_MOSI_GPIO_Port GPIOB 80 86 #define GSM_PWR_Pin GPIO_PIN_10 81 87 #define GSM_PWR_GPIO_Port GPIOD … … 88 94 #define SD_DETECT_Pin GPIO_PIN_8 89 95 #define SD_DETECT_GPIO_Port GPIOA 96 #define ETH_SPI_PWR_Pin GPIO_PIN_3 97 #define ETH_SPI_PWR_GPIO_Port GPIOD 90 98 #define OUTPUT_ON_LED_Pin GPIO_PIN_7 91 99 #define OUTPUT_ON_LED_GPIO_Port GPIOD … … 102 110 #define BUZZER_Pin GPIO_PIN_15 103 111 #define BUZZER_GPIO_Port GPIOG 112 #define ETH_SPI_NSS_Pin GPIO_PIN_4 113 #define ETH_SPI_NSS_GPIO_Port GPIOB 114 #define ETH_SPI_INT_Pin GPIO_PIN_8 115 #define ETH_SPI_INT_GPIO_Port GPIOB 116 #define ETH_SPI_RST_Pin GPIO_PIN_9 117 #define ETH_SPI_RST_GPIO_Port GPIOB 104 118 105 119 /* USER CODE BEGIN Private defines */ -
ctrl/firmware/Main/CubeMX/Core/Inc/spi.h
r47 r76 33 33 /* USER CODE END Includes */ 34 34 35 extern SPI_HandleTypeDef hspi2; 36 35 37 extern SPI_HandleTypeDef hspi4; 36 38 … … 39 41 /* USER CODE END Private defines */ 40 42 43 void MX_SPI2_Init(void); 41 44 void MX_SPI4_Init(void); 42 45 -
ctrl/firmware/Main/CubeMX/Core/Src/gpio.c
r66 r76 70 70 HAL_GPIO_WritePin(GPIOD, GSM_PWR_Pin|OUTPUT_ON_LED_Pin, GPIO_PIN_RESET); 71 71 72 /*Configure GPIO pin Output Level */ 73 HAL_GPIO_WritePin(ETH_SPI_PWR_GPIO_Port, ETH_SPI_PWR_Pin, GPIO_PIN_SET); 74 75 /*Configure GPIO pin Output Level */ 76 HAL_GPIO_WritePin(ETH_SPI_RST_GPIO_Port, ETH_SPI_RST_Pin, GPIO_PIN_RESET); 77 72 78 /*Configure GPIO pins : PE2 PE3 PE4 PE5 73 79 PE8 PE9 PE10 PE0 … … 119 125 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 120 126 121 /*Configure GPIO pins : PB0 PB1 PB2 PB10 122 PB11 PB12 PB13 PB14 123 PB15 PB3 PB4 PB5 124 PB6 PB7 PB8 PB9 */ 125 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10 126 |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 127 |GPIO_PIN_15|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5 128 |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9; 127 /*Configure GPIO pins : PB0 PB1 PB2 PB11 128 PB12 PB13 PB3 PB5 129 PB6 PB7 */ 130 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_11 131 |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_3|GPIO_PIN_5 132 |GPIO_PIN_6|GPIO_PIN_7; 129 133 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; 130 134 GPIO_InitStruct.Pull = GPIO_NOPULL; … … 147 151 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); 148 152 149 /*Configure GPIO pins : GSM_PWR_Pin OUTPUT_ON_LED_Pin */150 GPIO_InitStruct.Pin = GSM_PWR_Pin| OUTPUT_ON_LED_Pin;153 /*Configure GPIO pins : GSM_PWR_Pin ETH_SPI_PWR_Pin OUTPUT_ON_LED_Pin */ 154 GPIO_InitStruct.Pin = GSM_PWR_Pin|ETH_SPI_PWR_Pin|OUTPUT_ON_LED_Pin; 151 155 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 152 156 GPIO_InitStruct.Pull = GPIO_NOPULL; … … 161 165 162 166 /*Configure GPIO pins : PD14 PD15 PD0 PD1 163 PD 3 PD4 PD5 PD6 */167 PD4 PD5 PD6 */ 164 168 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1 165 |GPIO_PIN_ 3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;169 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6; 166 170 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; 167 171 GPIO_InitStruct.Pull = GPIO_NOPULL; … … 182 186 HAL_GPIO_Init(SD_DETECT_GPIO_Port, &GPIO_InitStruct); 183 187 188 /*Configure GPIO pin : ETH_SPI_INT_Pin */ 189 GPIO_InitStruct.Pin = ETH_SPI_INT_Pin; 190 GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; 191 GPIO_InitStruct.Pull = GPIO_NOPULL; 192 HAL_GPIO_Init(ETH_SPI_INT_GPIO_Port, &GPIO_InitStruct); 193 194 /*Configure GPIO pin : ETH_SPI_RST_Pin */ 195 GPIO_InitStruct.Pin = ETH_SPI_RST_Pin; 196 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 197 GPIO_InitStruct.Pull = GPIO_NOPULL; 198 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 199 HAL_GPIO_Init(ETH_SPI_RST_GPIO_Port, &GPIO_InitStruct); 200 184 201 } 185 202 -
ctrl/firmware/Main/CubeMX/Core/Src/main.c
r75 r76 35 35 #include <stdio.h> 36 36 37 #include "lwip.h" 38 37 39 /* USER CODE END Includes */ 38 40 … … 63 65 void MX_FREERTOS_Init(void); 64 66 /* USER CODE BEGIN PFP */ 65 66 void SPI_WriteComm(uint8_t);67 void SPI_WriteData(uint8_t);68 69 67 70 68 /* USER CODE END PFP */ … … 127 125 MX_FATFS_Init(); 128 126 MX_TIM8_Init(); 127 MX_SPI2_Init(); 129 128 /* USER CODE BEGIN 2 */ 130 129 … … 219 218 /* USER CODE BEGIN 4 */ 220 219 221 void SPI_Transmit(uint8_t cmd_data_toSend, uint8_t isCmd)222 {223 uint16_t data[1];224 225 data[0] = (uint16_t)isCmd << 8U;226 data[0] |= (uint16_t)cmd_data_toSend;227 228 229 HAL_SPI_Transmit(&hspi4, (const uint8_t*)data, 1, 1000);230 }231 232 void SPI_WriteComm(uint8_t cmdToSend)233 {234 SPI_Transmit(cmdToSend, 0);235 }236 237 //------------------------------------------------------------------------------238 239 void SPI_WriteData(uint8_t dataToSend)240 {241 SPI_Transmit(dataToSend, 1);242 }243 244 //------------------------------------------------------------------------------245 246 220 /* USER CODE END 4 */ 247 221 -
ctrl/firmware/Main/CubeMX/Core/Src/spi.c
r72 r76 25 25 /* USER CODE END 0 */ 26 26 27 SPI_HandleTypeDef hspi2; 27 28 SPI_HandleTypeDef hspi4; 28 29 DMA_HandleTypeDef hdma_spi4_tx; 29 30 31 /* SPI2 init function */ 32 void MX_SPI2_Init(void) 33 { 34 35 /* USER CODE BEGIN SPI2_Init 0 */ 36 37 /* USER CODE END SPI2_Init 0 */ 38 39 /* USER CODE BEGIN SPI2_Init 1 */ 40 41 /* USER CODE END SPI2_Init 1 */ 42 hspi2.Instance = SPI2; 43 hspi2.Init.Mode = SPI_MODE_MASTER; 44 hspi2.Init.Direction = SPI_DIRECTION_2LINES; 45 hspi2.Init.DataSize = SPI_DATASIZE_8BIT; 46 hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; 47 hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; 48 hspi2.Init.NSS = SPI_NSS_HARD_OUTPUT; 49 hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; 50 hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; 51 hspi2.Init.TIMode = SPI_TIMODE_DISABLE; 52 hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; 53 hspi2.Init.CRCPolynomial = 0x0; 54 hspi2.Init.NSSPMode = SPI_NSS_PULSE_ENABLE; 55 hspi2.Init.NSSPolarity = SPI_NSS_POLARITY_LOW; 56 hspi2.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA; 57 hspi2.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; 58 hspi2.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; 59 hspi2.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_03CYCLE; 60 hspi2.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_06CYCLE; 61 hspi2.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE; 62 hspi2.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_ENABLE; 63 hspi2.Init.IOSwap = SPI_IO_SWAP_DISABLE; 64 if (HAL_SPI_Init(&hspi2) != HAL_OK) 65 { 66 Error_Handler(); 67 } 68 /* USER CODE BEGIN SPI2_Init 2 */ 69 70 /* USER CODE END SPI2_Init 2 */ 71 72 } 30 73 /* SPI4 init function */ 31 74 void MX_SPI4_Init(void) … … 76 119 GPIO_InitTypeDef GPIO_InitStruct = {0}; 77 120 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; 78 if(spiHandle->Instance==SPI4) 121 if(spiHandle->Instance==SPI2) 122 { 123 /* USER CODE BEGIN SPI2_MspInit 0 */ 124 125 /* USER CODE END SPI2_MspInit 0 */ 126 127 /** Initializes the peripherals clock 128 */ 129 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI2; 130 PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL; 131 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) 132 { 133 Error_Handler(); 134 } 135 136 /* SPI2 clock enable */ 137 __HAL_RCC_SPI2_CLK_ENABLE(); 138 139 __HAL_RCC_GPIOB_CLK_ENABLE(); 140 /**SPI2 GPIO Configuration 141 PB10 ------> SPI2_SCK 142 PB14 ------> SPI2_MISO 143 PB15 ------> SPI2_MOSI 144 PB4(NJTRST) ------> SPI2_NSS 145 */ 146 GPIO_InitStruct.Pin = ETH_SPI_SCK_Pin|ETH_SPI_MISO_Pin|ETH_SPI_MOSI_Pin; 147 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 148 GPIO_InitStruct.Pull = GPIO_NOPULL; 149 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 150 GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; 151 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 152 153 GPIO_InitStruct.Pin = ETH_SPI_NSS_Pin; 154 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 155 GPIO_InitStruct.Pull = GPIO_NOPULL; 156 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 157 GPIO_InitStruct.Alternate = GPIO_AF7_SPI2; 158 HAL_GPIO_Init(ETH_SPI_NSS_GPIO_Port, &GPIO_InitStruct); 159 160 /* USER CODE BEGIN SPI2_MspInit 1 */ 161 162 /* USER CODE END SPI2_MspInit 1 */ 163 } 164 else if(spiHandle->Instance==SPI4) 79 165 { 80 166 /* USER CODE BEGIN SPI4_MspInit 0 */ … … 138 224 { 139 225 140 if(spiHandle->Instance==SPI4) 226 if(spiHandle->Instance==SPI2) 227 { 228 /* USER CODE BEGIN SPI2_MspDeInit 0 */ 229 230 /* USER CODE END SPI2_MspDeInit 0 */ 231 /* Peripheral clock disable */ 232 __HAL_RCC_SPI2_CLK_DISABLE(); 233 234 /**SPI2 GPIO Configuration 235 PB10 ------> SPI2_SCK 236 PB14 ------> SPI2_MISO 237 PB15 ------> SPI2_MOSI 238 PB4(NJTRST) ------> SPI2_NSS 239 */ 240 HAL_GPIO_DeInit(GPIOB, ETH_SPI_SCK_Pin|ETH_SPI_MISO_Pin|ETH_SPI_MOSI_Pin|ETH_SPI_NSS_Pin); 241 242 /* USER CODE BEGIN SPI2_MspDeInit 1 */ 243 244 /* USER CODE END SPI2_MspDeInit 1 */ 245 } 246 else if(spiHandle->Instance==SPI4) 141 247 { 142 248 /* USER CODE BEGIN SPI4_MspDeInit 0 */
Note: See TracChangeset
for help on using the changeset viewer.