/** ****************************************************************************** * File Name : main.c * Description : Main program body ****************************************************************************** ** This notice applies to any and all portions of this file * that are not between comment pairs USER CODE BEGIN and * USER CODE END. Other portions of this file, whether * inserted by the user or by software development tools * are owned by their respective copyright owners. * * COPYRIGHT(c) 2017 STMicroelectronics * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of STMicroelectronics nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "stm32f7xx_hal.h" #include /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private variables ---------------------------------------------------------*/ UART_HandleTypeDef huart1; UART_HandleTypeDef huart6; uint8_t empfangsbuffer[10000]; int receivezaehler=0; /* USER CODE BEGIN PV */ /* Private variables ---------------------------------------------------------*/ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART1_UART_Init(void); static void MX_USART6_UART_Init(void); /* USER CODE BEGIN PFP */ /* Private function prototypes -----------------------------------------------*/ /* USER CODE END PFP */ /* USER CODE BEGIN 0 */ // UART1_SendData: Sends one byte via polling. void UART1_SendData( uint8_t DataTx ) { while( __HAL_UART_GET_FLAG(&huart1, UART_FLAG_TXE) == RESET ); // Polling: wait for previous byte to be transmitted huart1.Instance->TDR = DataTx; // Transmit Data Register } void UART6_SendData( uint8_t DataTx,uint8_t DataTx2,uint8_t DataTx3,uint8_t DataTx4) { while( __HAL_UART_GET_FLAG(&huart6, UART_FLAG_TXE) == RESET ); // Polling: wait for previous byte to be transmitted huart6.Instance->TDR = DataTx; // Transmit Data Register while( __HAL_UART_GET_FLAG(&huart6, UART_FLAG_TXE) == RESET ); // Polling: wait for previous byte to be transmitted huart6.Instance->TDR = DataTx2; // Transmit Data Register while( __HAL_UART_GET_FLAG(&huart6, UART_FLAG_TXE) == RESET ); // Polling: wait for previous byte to be transmitted huart6.Instance->TDR = DataTx3; // Transmit Data Register while( __HAL_UART_GET_FLAG(&huart6, UART_FLAG_TXE) == RESET ); // Polling: wait for previous byte to be transmitted huart6.Instance->TDR = DataTx4; // Transmit Data Register } // USART1_IRQHandler: ISR for UART1: Receives data: // If 'd' received: Turn green LED off // If 'D' received: Turn green LED on // Send received byte back (echo), with '-' appended. void USART6_IRQHandler(void) { uint8_t DataRx; if( __HAL_UART_GET_IT(&huart6, UART_IT_RXNE) != RESET ) { // Receive interrupt triggered //DataRx = huart6.Instance->RDR; // Receive Data Register //printf("%Interrupt empfängt: %c",DataRx); empfangsbuffer[receivezaehler]=huart6.Instance->RDR; receivezaehler=receivezaehler+1; if (receivezaehler==9999) receivezaehler=0; //UART1_SendData(DataRx); // Echo //UART1_SendData('-'); // Append minus-sign to echo } } /* USER CODE END 0 */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART6_UART_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ HAL_NVIC_SetPriority(USART6_IRQn,1,0); HAL_NVIC_EnableIRQ(USART6_IRQn); __HAL_UART_ENABLE_IT(&huart6, UART_IT_RXNE); // Enable receive interrupt request /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ uint8_t i=0; //uint8_t empfangsbuffer[4]="BBBB", //uint8_t *sendebuffer="AT\r\n"; uint8_t *setbaudrate="AT+CIOBAUD=115200\r\n"; //19 uint8_t *baudrateabfrage="AT+CIOBAUD?\r\n"; //13 uint8_t *sendebuffer3="AT+RST\r\n"; //uint8_t *sendebuffer4="AT+CWLAP\r\n"; uint8_t *sendebuffer4="AT+CIFSR\r\n"; uint8_t *restart="AT+RST\r\n"; //8 uint8_t *wifimode="AT+CWMODE=1\r\n"; //13 uint8_t *connect="AT+CWJAP=\"test\",\"231242342543245345\"\r\n"; //44 ? //uint8_t *sendebuffer13="AT+CWLAP\r\n"; //10 FUNKTIONIERT MIT DEM EMPFANGEN NICHT uint8_t *getip="AT+CIFSR\r\n"; //10 uint8_t *multiconnection="AT+CIPMUX=0\r\n"; //13 //uint8_t *setastcpserver="AT+CIPSERVER=1,80\r\n"; //19 //uint8_t *send29bytes="AT+CIPSEND=0,29\r\n"; //17 //uint8_t *helloworldhtml="

Hello

World!

\r\n"; //31 // uint8_t *tcpverbindung="AT+CIPSTART=\"TCP\",\"212.227.144.45\",\"80\"\r\n"; //41 so richtig? //uint8_t *tcpverbindung="AT+CIPSTART=\"TCP\",\"sunshine-live.de\",80\r\n"; //41 //uint8_t *tcpverbindung="AT+CIPSTART=\"TCP\",\"stream.sunshine-live.de/90er/mp3-128/stream.sunshine-live.de/\",80\r\n"; //76 uint8_t *tcpverbindung="AT+CIPSTART=\"TCP\",\"swr-swr3-live.cast.addradio.de\",80\r\n"; //43 //uint8_t *tcpverbindung="AT+CIPSTART=\"UDP\",\"http://br-b5aktuell-live.cast.addradio.de/br/b5aktuell/live/mp3/128/stream.mp3\",80\r\n"; //103 uint8_t *anzahlzusendenderbytes="AT+CIPSEND=125\r\n"; //15 //uint8_t *getanfragehttp="GET /b5aktuell_2.m3u HTTP/1.1"; //29 //uint8_t *getanfragehttp="GET http://streams.br.de/b5aktuell_2.m3u HTTP/1.1\r\n"; //51 //uint8_t *getanfragehttp="GET /b5aktuell_2.m3u HTTP/1.1\r\n"; //31 //uint8_t *getanfragehttp="GET http://server231.radiostreamserver.de/wunschradio-80er.mp3 HTTP/1.0\r\n\r\n"; //75 //uint8_t *getanfragehttp="GET http://mp3channels.webradio.antenne.de/antenne HTTP/1.1\r\n\r\n"; //74 //uint8_t *getanfragehttp="GET /antenne HTTP/1.1\r\nHost: mp3channels.webradio.antenne.de\r\nConnection: keep-alive\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webb,image/apng,*/*:q=0.8\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4\r\n\r\n"; //74 uint8_t *getanfragehttp="GET /swr/swr3/live/mp3/128/stream.mp3 HTTP/1.1\r\nHost: swr-swr3-live.cast.addradio.de\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n"; //74 //uint8_t *getanfragehttp="GET http://server74.radiostreamserver.de/wunschradio-80er.mp3 HTTP/1.1\r\nContent-Type: application/json\r\nConnection: keep-alive\r\n\r\n"; //98 //uint8_t *getanfragehttp="GET /90er/mp3-128/stream.sunshine-live.de/ HTTP/1.0\r\n\r\n"; //55 //uint8_t *getanfragehttp="GET http://sunshinelive.hoerradar.de/sunshinelive-90er-mp3-mq?sABC=59np0o05%230%23p453po8on067s02964491r2803n0n7qr%23fgernz.fhafuvar-yvir.qr&amsparams=playerid:stream.sunshine-live.de;skey:1504447237 HTTP/1.0\r\n\r\n"; //55 //uint8_t *getanfragehttp="GET http://sunshine-live.de/sunshinelive-live-mp3.hq?sABC=59nosq01%230%23p75s14ssr3p58npqq718ns0oq945r735%23Jroenqvb-Cynlre&amsparams=playerid:Webradio-Player;skey:1504443649 HTTP/1.1\r\n\r\n"; //187 //http://mp3channels.webradio.antenne.de:80/antenne // http://br-b5aktuell-live.cast.addradio.de/br/b5aktuell/live/mp3/128/stream.mp3 int hilf=strlen(getanfragehttp); printf("anfragelaenge: %i",hilf); ////http:// /b5aktuell_2.m3u //<<<<<<<<<<<<<<<<<<<<<<<< ESP Initialisieren >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /*HAL_UART_Transmit(&huart6,sendebuffer1,13,1000); HAL_Delay(1000); printf("\n\n\n\n\n\n\nAn ESP gesendet: %s",sendebuffer1); printf("ESP Antwort: %s \n\n\n\n\n\n", empfangsbuffer); HAL_Delay(1000); HAL_UART_Transmit(&huart6,sendebuffer2,8,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",sendebuffer2); printf("ESP Antwort: %s \n\n\n\n\n\n", empfangsbuffer); /* HAL_Delay(1000); HAL_UART_Transmit(&huart6,sendebuffer3,8,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",sendebuffer3); printf("ESP Antwort: %s \n\n\n\n\n\n", empfangsbuffer);*/ /* HAL_Delay(1000); HAL_UART_Transmit(&huart6,sendebuffer4,10,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",sendebuffer4); printf("ESP Antwort: %s \n\n\n\n\n\n", empfangsbuffer);*/ HAL_UART_Transmit(&huart6,restart,8,1000); HAL_Delay(1000); printf("\n\n\nAn ESP gesendet: %s",restart); printf("ESP Antwort: %s \n\n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); /* HAL_Delay(5000); HAL_UART_Transmit(&huart6,setbaudrate,19,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",setbaudrate); printf("ESP Antwort: %s \n\n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); HAL_Delay(3000); HAL_UART_Transmit(&huart6,baudrateabfrage,13,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",baudrateabfrage); printf("ESP Antwort: %s \n\n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); */ HAL_Delay(3000); HAL_UART_Transmit(&huart6,wifimode,13,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",wifimode); printf("ESP Antwort: %s \n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); HAL_Delay(1000); HAL_UART_Transmit(&huart6,connect,44,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",connect); printf("ESP Antwort: %s \n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); /* HAL_Delay(1000); HAL_UART_Transmit(&huart6,sendebuffer13,10,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",sendebuffer13); printf("ESP Antwort: %s \n\n\n\n\n\n", empfangsbuffer); receivezaehler=0; */ HAL_Delay(3000); HAL_UART_Transmit(&huart6,multiconnection,13,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",multiconnection); printf("ESP Antwort: %s \n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); /* HAL_Delay(1000); HAL_UART_Transmit(&huart6,setastcpserver,19,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",setastcpserver); printf("ESP Antwort: %s \n\n\n\n\n\n", empfangsbuffer); receivezaehler=0; */ HAL_Delay(1000); HAL_UART_Transmit(&huart6,getip,10,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",getip); printf("ESP Antwort: %s \n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); HAL_Delay(1000); HAL_UART_Transmit(&huart6,tcpverbindung,strlen(tcpverbindung),1000); HAL_Delay(1000); printf("An ESP gesendet: %s",tcpverbindung); printf("ESP Antwort: %s \n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); HAL_Delay(500); HAL_UART_Transmit(&huart6,anzahlzusendenderbytes,strlen(anzahlzusendenderbytes),1000); HAL_Delay(1000); printf("An ESP gesendet: %s",anzahlzusendenderbytes); printf("ESP Antwort: %s \n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); HAL_Delay(500); HAL_UART_Transmit(&huart6,getanfragehttp,strlen(getanfragehttp),1000); HAL_Delay(1000); printf("An ESP gesendet: %s",getanfragehttp); printf("ESP Antwort: %s \n\n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); /* HAL_Delay(2000); HAL_UART_Transmit(&huart6,send29bytes,17,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",send29bytes); printf("ESP Antwort: %s \n\n\n\n\n\n", empfangsbuffer); receivezaehler=0; /* HAL_Delay(4000); HAL_UART_Transmit(&huart6,helloworldhtml,31,1000); HAL_Delay(1000); printf("An ESP gesendet: %s",helloworldhtml); printf("ESP Antwort: %s \n\n\n\n\n\n", empfangsbuffer); receivezaehler=0; /* */ //<<<<<<<<<<<<<<<<<<<<<<<< ESP Initialisieren ENDE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ if(receivezaehler>1000) { printf("ESP Antwort nach 1000 Zeichen: %s \n", empfangsbuffer); receivezaehler=0; memset(&empfangsbuffer[0], 0, sizeof(empfangsbuffer)); } //UART6_SendData('A','T','\r','\n'); //printf("Hallo: %d\n", i++); //HAL_Delay(100); HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_1); HAL_Delay(1); } /* USER CODE END 3 */ } /** System Clock Configuration */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; RCC_PeriphCLKInitTypeDef PeriphClkInitStruct; /**Configure the main internal regulator output voltage */ __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /**Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = 16; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; RCC_OscInitStruct.PLL.PLLM = 8; RCC_OscInitStruct.PLL.PLLN = 216; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLQ = 2; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Activate the Over-Drive mode */ if (HAL_PWREx_EnableOverDrive() != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Initializes the CPU, AHB and APB busses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_USART6; PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; PeriphClkInitStruct.Usart6ClockSelection = RCC_USART6CLKSOURCE_PCLK2; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Configure the Systick interrupt time */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); /**Configure the Systick */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } /* USART1 init function */ static void MX_USART1_UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; if (HAL_UART_Init(&huart1) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } } /* USART6 init function */ static void MX_USART6_UART_Init(void) { huart6.Instance = USART6; huart6.Init.BaudRate = 115200; huart6.Init.WordLength = UART_WORDLENGTH_8B; huart6.Init.StopBits = UART_STOPBITS_1; huart6.Init.Parity = UART_PARITY_NONE; huart6.Init.Mode = UART_MODE_TX_RX; huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart6.Init.OverSampling = UART_OVERSAMPLING_16; huart6.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart6.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; if (HAL_UART_Init(&huart6) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } } /** Configure pins PE4 ------> LTDC_B0 PE2 ------> QUADSPI_BK1_IO2 PG14 ------> ETH_TXD1 PE1 ------> FMC_NBL1 PE0 ------> FMC_NBL0 PB8 ------> I2C1_SCL PB5 ------> USB_OTG_HS_ULPI_D7 PB4 ------> S_TIM3_CH1 PD7 ------> SPDIFRX_IN0 PC12 ------> SDMMC1_CK PA15 ------> S_TIM2_CH1_ETR PE5 ------> DCMI_D6 PE6 ------> DCMI_D7 PG13 ------> ETH_TXD0 PB9 ------> I2C1_SDA PB6 ------> QUADSPI_BK1_NCS PG15 ------> FMC_SDNCAS PG11 ------> ETH_TX_EN PJ13 ------> LTDC_B1 PD0 ------> FMC_D2_DA2 PC11 ------> SDMMC1_D3 PC10 ------> SDMMC1_D2 PA12 ------> USB_OTG_FS_DP PI4 ------> SAI2_MCLK_A PK7 ------> LTDC_DE PK6 ------> LTDC_B7 PK5 ------> LTDC_B6 PG12 ------> LTDC_B4 PG10 ------> SAI2_SD_B PJ14 ------> LTDC_B2 PD3 ------> DCMI_D5 PD1 ------> FMC_D3_DA3 PA11 ------> USB_OTG_FS_DM PF0 ------> FMC_A0 PI5 ------> SAI2_SCK_A PI7 ------> SAI2_FS_A PI10 ------> LTDC_HSYNC PI6 ------> SAI2_SD_A PK4 ------> LTDC_B5 PG9 ------> DCMI_VSYNC PJ15 ------> LTDC_B3 PD2 ------> SDMMC1_CMD PA10 ------> USB_OTG_FS_ID PF1 ------> FMC_A1 PI9 ------> LTDC_VSYNC PH14 ------> DCMI_D4 PI0 ------> S_TIM5_CH4 PK1 ------> LTDC_G6 PK2 ------> LTDC_G7 PC9 ------> SDMMC1_D1 PA8 ------> S_TIM1_CH1 PF2 ------> FMC_A2 PI15 ------> LTDC_R0 PJ11 ------> LTDC_G4 PK0 ------> LTDC_G5 PC8 ------> SDMMC1_D0 PC7 ------> USART6_RX PF3 ------> FMC_A3 PI14 ------> LTDC_CLK PH4 ------> USB_OTG_HS_ULPI_NXT PJ8 ------> LTDC_G1 PJ10 ------> LTDC_G3 PG8 ------> FMC_SDCLK PC6 ------> USART6_TX PF4 ------> FMC_A4 PH5 ------> FMC_SDNWE PH3 ------> FMC_SDNE0 PJ7 ------> LTDC_G0 PJ9 ------> LTDC_G2 PF7 ------> ADC3_IN5 PF6 ------> ADC3_IN4 PF5 ------> FMC_A5 PJ6 ------> LTDC_R7 PD15 ------> FMC_D1_DA1 PB13 ------> USB_OTG_HS_ULPI_D6 PD10 ------> FMC_D15_DA15 PF10 ------> ADC3_IN8 PF9 ------> ADC3_IN7 PF8 ------> ADC3_IN6 PC3 ------> FMC_SDCKE0 PD14 ------> FMC_D0_DA0 PB12 ------> USB_OTG_HS_ULPI_D5 PD9 ------> FMC_D14_DA14 PD8 ------> FMC_D13_DA13 PC0 ------> USB_OTG_HS_ULPI_STP PC1 ------> ETH_MDC PC2 ------> USB_OTG_HS_ULPI_DIR PB2 ------> QUADSPI_CLK PF12 ------> FMC_A6 PG1 ------> FMC_A11 PF15 ------> FMC_A9 PJ4 ------> LTDC_R5 PD12 ------> QUADSPI_BK1_IO1 PD13 ------> QUADSPI_BK1_IO3 PJ5 ------> LTDC_R6 PH12 ------> DCMI_D3 PA1 ------> ETH_REF_CLK PA0/WKUP ------> ADCx_IN0 PA4 ------> DCMI_HSYNC PC4 ------> ETH_RXD0 PF13 ------> FMC_A7 PG0 ------> FMC_A10 PJ3 ------> LTDC_R4 PE8 ------> FMC_D5_DA5 PD11 ------> QUADSPI_BK1_IO0 PG5 ------> FMC_A15_BA1 PG4 ------> FMC_A14_BA0 PH7 ------> I2C3_SCL PH9 ------> DCMI_D0 PH11 ------> DCMI_D2 PA2 ------> ETH_MDIO PA6 ------> DCMI_PIXCLK PA5 ------> USB_OTG_HS_ULPI_CK PC5 ------> ETH_RXD1 PF14 ------> FMC_A8 PJ2 ------> LTDC_R3 PF11 ------> FMC_SDNRAS PE9 ------> FMC_D6_DA6 PE11 ------> FMC_D8_DA8 PE14 ------> FMC_D11_DA11 PB10 ------> USB_OTG_HS_ULPI_D3 PH6 ------> S_TIM12_CH1 PH8 ------> I2C3_SDA PH10 ------> DCMI_D1 PA3 ------> USB_OTG_HS_ULPI_D0 PA7 ------> ETH_CRS_DV PB1 ------> USB_OTG_HS_ULPI_D2 PB0 ------> USB_OTG_HS_ULPI_D1 PJ0 ------> LTDC_R1 PJ1 ------> LTDC_R2 PE7 ------> FMC_D4_DA4 PE10 ------> FMC_D7_DA7 PE12 ------> FMC_D9_DA9 PE15 ------> FMC_D12_DA12 PE13 ------> FMC_D10_DA10 PB11 ------> USB_OTG_HS_ULPI_D4 PB14 ------> SPI2_MISO PB15 ------> SPI2_MOSI */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); __HAL_RCC_GPIOG_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOJ_CLK_ENABLE(); __HAL_RCC_GPIOI_CLK_ENABLE(); __HAL_RCC_GPIOK_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); /* __HAL_RCC_USART6_CLK_ENABLE(); /**USART6 GPIO Configuration PG14 ------> USART6_TX PG9 ------> USART6_RX *//* GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF8_USART6; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); */ /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(OTG_FS_PowerSwitchOn_GPIO_Port, OTG_FS_PowerSwitchOn_Pin, GPIO_PIN_SET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOI, ARDUINO_D7_Pin|ARDUINO_D8_Pin|GPIO_PIN_1|LCD_DISP_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(LCD_BL_CTRL_GPIO_Port, LCD_BL_CTRL_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(DCMI_PWR_EN_GPIO_Port, DCMI_PWR_EN_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOG, ARDUINO_D4_Pin|ARDUINO_D2_Pin|EXT_RST_Pin, GPIO_PIN_RESET); /*Configure GPIO pin : LCD_B0_Pin */ GPIO_InitStruct.Pin = LCD_B0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; HAL_GPIO_Init(LCD_B0_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : OTG_HS_OverCurrent_Pin */ GPIO_InitStruct.Pin = OTG_HS_OverCurrent_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(OTG_HS_OverCurrent_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : QSPI_D2_Pin */ GPIO_InitStruct.Pin = QSPI_D2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI; HAL_GPIO_Init(QSPI_D2_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : RMII_TXD1_Pin RMII_TXD0_Pin RMII_TX_EN_Pin */ GPIO_InitStruct.Pin = RMII_TXD1_Pin|RMII_TXD0_Pin|RMII_TX_EN_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF11_ETH; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); /*Configure GPIO pins : FMC_NBL1_Pin FMC_NBL0_Pin FMC_D5_Pin FMC_D6_Pin FMC_D8_Pin FMC_D11_Pin FMC_D4_Pin FMC_D7_Pin FMC_D9_Pin FMC_D12_Pin FMC_D10_Pin */ GPIO_InitStruct.Pin = FMC_NBL1_Pin|FMC_NBL0_Pin|FMC_D5_Pin|FMC_D6_Pin |FMC_D8_Pin|FMC_D11_Pin|FMC_D4_Pin|FMC_D7_Pin |FMC_D9_Pin|FMC_D12_Pin|FMC_D10_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_SCL_D15_Pin ARDUINO_SDA_D14_Pin */ GPIO_InitStruct.Pin = ARDUINO_SCL_D15_Pin|ARDUINO_SDA_D14_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : ULPI_D7_Pin ULPI_D6_Pin ULPI_D5_Pin ULPI_D3_Pin ULPI_D2_Pin ULPI_D1_Pin ULPI_D4_Pin */ GPIO_InitStruct.Pin = ULPI_D7_Pin|ULPI_D6_Pin|ULPI_D5_Pin|ULPI_D3_Pin |ULPI_D2_Pin|ULPI_D1_Pin|ULPI_D4_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_D3_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_D3_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF2_TIM3; HAL_GPIO_Init(ARDUINO_PWM_D3_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : SPDIF_RX0_Pin */ GPIO_InitStruct.Pin = SPDIF_RX0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF8_SPDIFRX; HAL_GPIO_Init(SPDIF_RX0_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : SDMMC_CK_Pin SDMMC_D3_Pin SDMMC_D2_Pin PC9 PC8 */ GPIO_InitStruct.Pin = SDMMC_CK_Pin|SDMMC_D3_Pin|SDMMC_D2_Pin|GPIO_PIN_9 |GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_D9_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_D9_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; HAL_GPIO_Init(ARDUINO_PWM_D9_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : DCMI_D6_Pin DCMI_D7_Pin */ GPIO_InitStruct.Pin = DCMI_D6_Pin|DCMI_D7_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF13_DCMI; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); /*Configure GPIO pin : QSPI_NCS_Pin */ GPIO_InitStruct.Pin = QSPI_NCS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI; HAL_GPIO_Init(QSPI_NCS_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : FMC_SDNCAS_Pin FMC_SDCLK_Pin FMC_A11_Pin FMC_A10_Pin FMC_BA1_Pin FMC_BA0_Pin */ GPIO_InitStruct.Pin = FMC_SDNCAS_Pin|FMC_SDCLK_Pin|FMC_A11_Pin|FMC_A10_Pin |FMC_BA1_Pin|FMC_BA0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); /*Configure GPIO pins : LCD_B1_Pin LCD_B2_Pin LCD_B3_Pin LCD_G4_Pin LCD_G1_Pin LCD_G3_Pin LCD_G0_Pin LCD_G2_Pin LCD_R7_Pin LCD_R5_Pin LCD_R6_Pin LCD_R4_Pin LCD_R3_Pin LCD_R1_Pin LCD_R2_Pin */ GPIO_InitStruct.Pin = LCD_B1_Pin|LCD_B2_Pin|LCD_B3_Pin|LCD_G4_Pin |LCD_G1_Pin|LCD_G3_Pin|LCD_G0_Pin|LCD_G2_Pin |LCD_R7_Pin|LCD_R5_Pin|LCD_R6_Pin|LCD_R4_Pin |LCD_R3_Pin|LCD_R1_Pin|LCD_R2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; HAL_GPIO_Init(GPIOJ, &GPIO_InitStruct); /*Configure GPIO pin : OTG_FS_VBUS_Pin */ GPIO_InitStruct.Pin = OTG_FS_VBUS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(OTG_FS_VBUS_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : Audio_INT_Pin */ GPIO_InitStruct.Pin = Audio_INT_Pin; GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(Audio_INT_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : FMC_D2_Pin FMC_D3_Pin FMC_D1_Pin FMC_D15_Pin FMC_D0_Pin FMC_D14_Pin FMC_D13_Pin */ GPIO_InitStruct.Pin = FMC_D2_Pin|FMC_D3_Pin|FMC_D1_Pin|FMC_D15_Pin |FMC_D0_Pin|FMC_D14_Pin|FMC_D13_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); /*Configure GPIO pins : OTG_FS_P_Pin OTG_FS_N_Pin OTG_FS_ID_Pin */ GPIO_InitStruct.Pin = OTG_FS_P_Pin|OTG_FS_N_Pin|OTG_FS_ID_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pins : SAI2_MCLKA_Pin SAI2_SCKA_Pin SAI2_FSA_Pin SAI2_SDA_Pin */ GPIO_InitStruct.Pin = SAI2_MCLKA_Pin|SAI2_SCKA_Pin|SAI2_FSA_Pin|SAI2_SDA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF10_SAI2; HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); /*Configure GPIO pins : LCD_DE_Pin LCD_B7_Pin LCD_B6_Pin LCD_B5_Pin LCD_G6_Pin LCD_G7_Pin LCD_G5_Pin */ GPIO_InitStruct.Pin = LCD_DE_Pin|LCD_B7_Pin|LCD_B6_Pin|LCD_B5_Pin |LCD_G6_Pin|LCD_G7_Pin|LCD_G5_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; HAL_GPIO_Init(GPIOK, &GPIO_InitStruct); /*Configure GPIO pin : LCD_B4_Pin */ GPIO_InitStruct.Pin = LCD_B4_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; HAL_GPIO_Init(LCD_B4_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : SAI2_SDB_Pin */ GPIO_InitStruct.Pin = SAI2_SDB_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF10_SAI2; HAL_GPIO_Init(SAI2_SDB_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : OTG_FS_PowerSwitchOn_Pin */ GPIO_InitStruct.Pin = OTG_FS_PowerSwitchOn_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(OTG_FS_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : DCMI_D5_Pin */ GPIO_InitStruct.Pin = DCMI_D5_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF13_DCMI; HAL_GPIO_Init(DCMI_D5_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_D7_Pin ARDUINO_D8_Pin PI1 LCD_DISP_Pin */ GPIO_InitStruct.Pin = ARDUINO_D7_Pin|ARDUINO_D8_Pin|GPIO_PIN_1|LCD_DISP_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); /*Configure GPIO pin : uSD_Detect_Pin */ GPIO_InitStruct.Pin = uSD_Detect_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(uSD_Detect_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : FMC_A0_Pin FMC_A1_Pin FMC_A2_Pin FMC_A3_Pin FMC_A4_Pin FMC_A5_Pin FMC_A6_Pin FMC_A9_Pin FMC_A7_Pin FMC_A8_Pin FMC_SDNRAS_Pin */ GPIO_InitStruct.Pin = FMC_A0_Pin|FMC_A1_Pin|FMC_A2_Pin|FMC_A3_Pin |FMC_A4_Pin|FMC_A5_Pin|FMC_A6_Pin|FMC_A9_Pin |FMC_A7_Pin|FMC_A8_Pin|FMC_SDNRAS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); /*Configure GPIO pins : LCD_HSYNC_Pin LCD_VSYNC_Pin LCD_R0_Pin LCD_CLK_Pin */ GPIO_InitStruct.Pin = LCD_HSYNC_Pin|LCD_VSYNC_Pin|LCD_R0_Pin|LCD_CLK_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); /*Configure GPIO pin : LCD_BL_CTRL_Pin */ GPIO_InitStruct.Pin = LCD_BL_CTRL_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(LCD_BL_CTRL_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : DCMI_VSYNC_Pin */ GPIO_InitStruct.Pin = DCMI_VSYNC_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF13_DCMI; HAL_GPIO_Init(DCMI_VSYNC_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : OTG_FS_OverCurrent_Pin */ GPIO_InitStruct.Pin = OTG_FS_OverCurrent_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(OTG_FS_OverCurrent_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : SDMMC_D0_Pin */ GPIO_InitStruct.Pin = SDMMC_D0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1; HAL_GPIO_Init(SDMMC_D0_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : TP3_Pin NC2_Pin */ GPIO_InitStruct.Pin = TP3_Pin|NC2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); /*Configure GPIO pin : DCMI_PWR_EN_Pin */ GPIO_InitStruct.Pin = DCMI_PWR_EN_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(DCMI_PWR_EN_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : DCMI_D4_Pin DCMI_D3_Pin DCMI_D0_Pin DCMI_D2_Pin DCMI_D1_Pin */ GPIO_InitStruct.Pin = DCMI_D4_Pin|DCMI_D3_Pin|DCMI_D0_Pin|DCMI_D2_Pin |DCMI_D1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF13_DCMI; HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_CS_D10_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_CS_D10_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF2_TIM5; HAL_GPIO_Init(ARDUINO_PWM_CS_D10_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_D5_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_D5_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF1_TIM1; HAL_GPIO_Init(ARDUINO_PWM_D5_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : LCD_INT_Pin */ GPIO_InitStruct.Pin = LCD_INT_Pin; GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(LCD_INT_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_RX_D0_Pin ARDUINO_TX_D1_Pin */ GPIO_InitStruct.Pin = ARDUINO_RX_D0_Pin|ARDUINO_TX_D1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF8_USART6; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pin : ULPI_NXT_Pin */ GPIO_InitStruct.Pin = ULPI_NXT_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(ULPI_NXT_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : FMC_SDNME_Pin FMC_SDNE0_Pin */ GPIO_InitStruct.Pin = FMC_SDNME_Pin|FMC_SDNE0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_D4_Pin ARDUINO_D2_Pin EXT_RST_Pin */ GPIO_InitStruct.Pin = ARDUINO_D4_Pin|ARDUINO_D2_Pin|EXT_RST_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_A4_Pin ARDUINO_A5_Pin ARDUINO_A1_Pin ARDUINO_A2_Pin ARDUINO_A3_Pin */ GPIO_InitStruct.Pin = ARDUINO_A4_Pin|ARDUINO_A5_Pin|ARDUINO_A1_Pin|ARDUINO_A2_Pin |ARDUINO_A3_Pin; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); /*Configure GPIO pin : FMC_SDCKE0_Pin */ GPIO_InitStruct.Pin = FMC_SDCKE0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(FMC_SDCKE0_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : ULPI_STP_Pin ULPI_DIR_Pin */ GPIO_InitStruct.Pin = ULPI_STP_Pin|ULPI_DIR_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pins : RMII_MDC_Pin RMII_RXD0_Pin RMII_RXD1_Pin */ GPIO_InitStruct.Pin = RMII_MDC_Pin|RMII_RXD0_Pin|RMII_RXD1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF11_ETH; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pin : PB2 */ GPIO_InitStruct.Pin = GPIO_PIN_2; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : QSPI_D1_Pin QSPI_D3_Pin QSPI_D0_Pin */ GPIO_InitStruct.Pin = QSPI_D1_Pin|QSPI_D3_Pin|QSPI_D0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); /*Configure GPIO pin : RMII_RXER_Pin */ GPIO_InitStruct.Pin = RMII_RXER_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(RMII_RXER_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : RMII_REF_CLK_Pin RMII_MDIO_Pin RMII_CRS_DV_Pin */ GPIO_InitStruct.Pin = RMII_REF_CLK_Pin|RMII_MDIO_Pin|RMII_CRS_DV_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF11_ETH; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_A0_Pin */ GPIO_InitStruct.Pin = ARDUINO_A0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(ARDUINO_A0_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : DCMI_HSYNC_Pin PA6 */ GPIO_InitStruct.Pin = DCMI_HSYNC_Pin|GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF13_DCMI; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pins : LCD_SCL_Pin LCD_SDA_Pin */ GPIO_InitStruct.Pin = LCD_SCL_Pin|LCD_SDA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); /*Configure GPIO pins : ULPI_CLK_Pin ULPI_D0_Pin */ GPIO_InitStruct.Pin = ULPI_CLK_Pin|ULPI_D0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_D6_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_D6_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF9_TIM12; HAL_GPIO_Init(ARDUINO_PWM_D6_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_MISO_D12_Pin ARDUINO_MOSI_PWM_D11_Pin */ GPIO_InitStruct.Pin = ARDUINO_MISO_D12_Pin|ARDUINO_MOSI_PWM_D11_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } /* USER CODE BEGIN 4 */ /* USER CODE END 4 */ /** * @brief This function is executed in case of error occurrence. * @param None * @retval None */ void _Error_Handler(char * file, int line) { /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ while(1) { } /* USER CODE END Error_Handler_Debug */ } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t* file, uint32_t line) { /* USER CODE BEGIN 6 */ /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END 6 */ } #endif /** * @} */ /** * @} */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/