From 349f75d2572a56a448cce5fc59cf09dcc755f2d3 Mon Sep 17 00:00:00 2001 From: wangyz1997 Date: Mon, 8 Apr 2024 01:30:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D=E6=96=B0=E7=89=88=E7=A1=AC?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Inc/main.h | 45 ++-- Core/Inc/stm32h7xx_it.h | 2 + Core/Src/main.c | 169 ++++++++++----- Core/Src/stm32h7xx_hal_msp.c | 124 +++++++++++ Core/Src/stm32h7xx_it.c | 30 +++ User/audio/audio_hal.c | 4 +- User/audio/audio_player_mp3.c | 2 +- User/bsp/bsp_aic3204.c | 19 +- User/tasks/task_debug.c | 4 +- User/tasks/task_main.c | 6 +- stm32h743_player.ioc | 391 ++++++++++++++++++++-------------- 11 files changed, 555 insertions(+), 241 deletions(-) diff --git a/Core/Inc/main.h b/Core/Inc/main.h index ec3a262..93d5b60 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -42,6 +42,7 @@ extern "C" { /* Exported constants --------------------------------------------------------*/ /* USER CODE BEGIN EC */ extern I2C_HandleTypeDef hi2c1; +extern I2C_HandleTypeDef hi2c2; extern SAI_HandleTypeDef hsai_BlockB1; extern DMA_HandleTypeDef hdma_sai1_a; extern SD_HandleTypeDef hsd1; @@ -69,24 +70,32 @@ void Error_Handler(void); /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ -#define KEY1_Pin GPIO_PIN_6 -#define KEY1_GPIO_Port GPIOF -#define KEY2_Pin GPIO_PIN_7 -#define KEY2_GPIO_Port GPIOF -#define CODEC_RST_Pin GPIO_PIN_1 -#define CODEC_RST_GPIO_Port GPIOC -#define CODEC_EN_Pin GPIO_PIN_3 -#define CODEC_EN_GPIO_Port GPIOC -#define LED_B_Pin GPIO_PIN_5 -#define LED_B_GPIO_Port GPIOA -#define LED_G_Pin GPIO_PIN_6 -#define LED_G_GPIO_Port GPIOA -#define LED_R_Pin GPIO_PIN_4 -#define LED_R_GPIO_Port GPIOC -#define LED_Pin GPIO_PIN_7 -#define LED_GPIO_Port GPIOH -#define OSC_EN_Pin GPIO_PIN_3 -#define OSC_EN_GPIO_Port GPIOG +#define TP_RST_Pin GPIO_PIN_4 +#define TP_RST_GPIO_Port GPIOE +#define LED_G_Pin GPIO_PIN_8 +#define LED_G_GPIO_Port GPIOI +#define LED_R_Pin GPIO_PIN_11 +#define LED_R_GPIO_Port GPIOI +#define LED_P_Pin GPIO_PIN_1 +#define LED_P_GPIO_Port GPIOA +#define KEY2_Pin GPIO_PIN_3 +#define KEY2_GPIO_Port GPIOA +#define KEY1_Pin GPIO_PIN_5 +#define KEY1_GPIO_Port GPIOA +#define KEY3_Pin GPIO_PIN_6 +#define KEY3_GPIO_Port GPIOA +#define CODEC_RST_Pin GPIO_PIN_7 +#define CODEC_RST_GPIO_Port GPIOA +#define CODEC_EN_Pin GPIO_PIN_0 +#define CODEC_EN_GPIO_Port GPIOB +#define HP_DET_Pin GPIO_PIN_1 +#define HP_DET_GPIO_Port GPIOB +#define LED_B_Pin GPIO_PIN_7 +#define LED_B_GPIO_Port GPIOH +#define LED_Y_Pin GPIO_PIN_3 +#define LED_Y_GPIO_Port GPIOG +#define TP_INT_Pin GPIO_PIN_3 +#define TP_INT_GPIO_Port GPIOI /* USER CODE BEGIN Private defines */ diff --git a/Core/Inc/stm32h7xx_it.h b/Core/Inc/stm32h7xx_it.h index df0369c..be63de7 100644 --- a/Core/Inc/stm32h7xx_it.h +++ b/Core/Inc/stm32h7xx_it.h @@ -54,11 +54,13 @@ void UsageFault_Handler(void); void DebugMon_Handler(void); void DMA1_Stream0_IRQHandler(void); void I2C1_EV_IRQHandler(void); +void I2C2_EV_IRQHandler(void); void USART1_IRQHandler(void); void SDMMC1_IRQHandler(void); void TIM6_DAC_IRQHandler(void); void DMA2_Stream0_IRQHandler(void); void DMA2_Stream1_IRQHandler(void); +void DMA2_Stream2_IRQHandler(void); void SAI1_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Src/main.c b/Core/Src/main.c index fdee18b..ca9d0e9 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -43,7 +43,9 @@ /* Private variables ---------------------------------------------------------*/ I2C_HandleTypeDef hi2c1; +I2C_HandleTypeDef hi2c2; DMA_HandleTypeDef hdma_i2c1_tx; +DMA_HandleTypeDef hdma_i2c2_tx; SAI_HandleTypeDef hsai_BlockB1; DMA_HandleTypeDef hdma_sai1_b; @@ -73,6 +75,7 @@ static void MX_USART1_UART_Init(void); static void MX_SAI1_Init(void); static void MX_TIM2_Init(void); static void MX_FMC_Init(void); +static void MX_I2C2_Init(void); void task_elog_entry(void const * argument); /* USER CODE BEGIN PFP */ @@ -128,6 +131,7 @@ int main(void) MX_SAI1_Init(); MX_TIM2_Init(); MX_FMC_Init(); + MX_I2C2_Init(); /* USER CODE BEGIN 2 */ heap_init(); /* USER CODE END 2 */ @@ -315,6 +319,58 @@ static void MX_I2C1_Init(void) } +/** + * @brief I2C2 Initialization Function + * @param None + * @retval None + */ +static void MX_I2C2_Init(void) +{ + + /* USER CODE BEGIN I2C2_Init 0 */ + + /* USER CODE END I2C2_Init 0 */ + + /* USER CODE BEGIN I2C2_Init 1 */ + + /* USER CODE END I2C2_Init 1 */ + hi2c2.Instance = I2C2; + hi2c2.Init.Timing = 0x0050174F; + hi2c2.Init.OwnAddress1 = 0; + hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c2.Init.OwnAddress2 = 0; + hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c2) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c2, I2C_ANALOGFILTER_ENABLE) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c2, 0) != HAL_OK) + { + Error_Handler(); + } + + /** I2C Enable Fast Mode Plus + */ + HAL_I2CEx_EnableFastModePlus(I2C_FASTMODEPLUS_I2C2); + /* USER CODE BEGIN I2C2_Init 2 */ + + /* USER CODE END I2C2_Init 2 */ + +} + /** * @brief SAI1 Initialization Function * @param None @@ -493,6 +549,9 @@ static void MX_DMA_Init(void) /* DMA2_Stream1_IRQn interrupt configuration */ HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 5, 0); HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn); + /* DMA2_Stream2_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn); } @@ -556,8 +615,8 @@ static void MX_GPIO_Init(void) /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); - __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOI_CLK_ENABLE(); + __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); @@ -566,19 +625,22 @@ static void MX_GPIO_Init(void) __HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOC, CODEC_RST_Pin|CODEC_EN_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(TP_RST_GPIO_Port, TP_RST_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOA, LED_B_Pin|LED_G_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(GPIOI, LED_G_Pin|LED_R_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(GPIOA, LED_P_Pin|CODEC_RST_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(CODEC_EN_GPIO_Port, CODEC_EN_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(OSC_EN_GPIO_Port, OSC_EN_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(LED_B_GPIO_Port, LED_B_Pin, GPIO_PIN_SET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(LED_Y_GPIO_Port, LED_Y_Pin, GPIO_PIN_RESET); /*Configure GPIO pin : PE2 */ GPIO_InitStruct.Pin = GPIO_PIN_2; @@ -588,6 +650,13 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); + /*Configure GPIO pin : TP_RST_Pin */ + GPIO_InitStruct.Pin = TP_RST_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(TP_RST_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pins : PE5 PE6 */ GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; @@ -596,6 +665,13 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); + /*Configure GPIO pins : LED_G_Pin LED_R_Pin */ + GPIO_InitStruct.Pin = LED_G_Pin|LED_R_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 pins : PI9 PI10 PI0 PI2 PI4 PI5 PI6 PI7 */ GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_2 @@ -606,20 +682,6 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); - /*Configure GPIO pin : PI11 */ - GPIO_InitStruct.Pin = GPIO_PIN_11; - 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_LTDC; - HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); - - /*Configure GPIO pins : KEY1_Pin KEY2_Pin */ - GPIO_InitStruct.Pin = KEY1_Pin|KEY2_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - GPIO_InitStruct.Pull = GPIO_PULLUP; - HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - /*Configure GPIO pin : PF10 */ GPIO_InitStruct.Pin = GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; @@ -628,19 +690,12 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - /*Configure GPIO pin : CODEC_RST_Pin */ - GPIO_InitStruct.Pin = CODEC_RST_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_PULLUP; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(CODEC_RST_GPIO_Port, &GPIO_InitStruct); - - /*Configure GPIO pin : CODEC_EN_Pin */ - GPIO_InitStruct.Pin = CODEC_EN_Pin; + /*Configure GPIO pins : LED_P_Pin CODEC_RST_Pin */ + GPIO_InitStruct.Pin = LED_P_Pin|CODEC_RST_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(CODEC_EN_GPIO_Port, &GPIO_InitStruct); + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : PA2 */ GPIO_InitStruct.Pin = GPIO_PIN_2; @@ -650,19 +705,24 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /*Configure GPIO pins : LED_B_Pin LED_G_Pin */ - GPIO_InitStruct.Pin = LED_B_Pin|LED_G_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; + /*Configure GPIO pins : KEY2_Pin KEY1_Pin KEY3_Pin */ + GPIO_InitStruct.Pin = KEY2_Pin|KEY1_Pin|KEY3_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /*Configure GPIO pin : LED_R_Pin */ - GPIO_InitStruct.Pin = LED_R_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; + /*Configure GPIO pin : CODEC_EN_Pin */ + GPIO_InitStruct.Pin = CODEC_EN_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; - HAL_GPIO_Init(LED_R_GPIO_Port, &GPIO_InitStruct); + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(CODEC_EN_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : HP_DET_Pin */ + GPIO_InitStruct.Pin = HP_DET_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_PULLUP; + HAL_GPIO_Init(HP_DET_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : PB2 */ GPIO_InitStruct.Pin = GPIO_PIN_2; @@ -680,12 +740,12 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Alternate = GPIO_AF2_TIM12; HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); - /*Configure GPIO pin : LED_Pin */ - GPIO_InitStruct.Pin = LED_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; + /*Configure GPIO pin : LED_B_Pin */ + GPIO_InitStruct.Pin = LED_B_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; - HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct); + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(LED_B_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : PH8 PH9 PH10 PH11 PH12 PH13 PH14 PH15 */ @@ -705,12 +765,12 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - /*Configure GPIO pin : OSC_EN_Pin */ - GPIO_InitStruct.Pin = OSC_EN_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; - GPIO_InitStruct.Pull = GPIO_PULLUP; + /*Configure GPIO pin : LED_Y_Pin */ + GPIO_InitStruct.Pin = LED_Y_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(OSC_EN_GPIO_Port, &GPIO_InitStruct); + HAL_GPIO_Init(LED_Y_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : PG6 PG7 PG12 PG13 PG14 */ @@ -738,6 +798,12 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Alternate = GPIO_AF10_OTG1_FS; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + /*Configure GPIO pin : TP_INT_Pin */ + GPIO_InitStruct.Pin = TP_INT_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_PULLUP; + HAL_GPIO_Init(TP_INT_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : PD6 */ GPIO_InitStruct.Pin = GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; @@ -809,7 +875,8 @@ void Error_Handler(void) { /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ - HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(LED_P_GPIO_Port, LED_P_Pin, GPIO_PIN_RESET); + __disable_irq(); while (1) { diff --git a/Core/Src/stm32h7xx_hal_msp.c b/Core/Src/stm32h7xx_hal_msp.c index 578e028..3003263 100644 --- a/Core/Src/stm32h7xx_hal_msp.c +++ b/Core/Src/stm32h7xx_hal_msp.c @@ -25,6 +25,8 @@ /* USER CODE END Includes */ extern DMA_HandleTypeDef hdma_i2c1_tx; +extern DMA_HandleTypeDef hdma_i2c2_tx; + extern DMA_HandleTypeDef hdma_usart1_tx; /* Private typedef -----------------------------------------------------------*/ @@ -147,6 +149,62 @@ void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) /* USER CODE END I2C1_MspInit 1 */ } + else if(hi2c->Instance==I2C2) + { + /* USER CODE BEGIN I2C2_MspInit 0 */ + + /* USER CODE END I2C2_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C2; + PeriphClkInitStruct.I2c123ClockSelection = RCC_I2C123CLKSOURCE_D2PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + { + Error_Handler(); + } + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**I2C2 GPIO Configuration + PB10 ------> I2C2_SCL + PB11 ------> I2C2_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C2; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* Peripheral clock enable */ + __HAL_RCC_I2C2_CLK_ENABLE(); + + /* I2C2 DMA Init */ + /* I2C2_TX Init */ + hdma_i2c2_tx.Instance = DMA2_Stream2; + hdma_i2c2_tx.Init.Request = DMA_REQUEST_I2C2_TX; + hdma_i2c2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; + hdma_i2c2_tx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_i2c2_tx.Init.MemInc = DMA_MINC_ENABLE; + hdma_i2c2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_i2c2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_i2c2_tx.Init.Mode = DMA_NORMAL; + hdma_i2c2_tx.Init.Priority = DMA_PRIORITY_LOW; + hdma_i2c2_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; + if (HAL_DMA_Init(&hdma_i2c2_tx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(hi2c,hdmatx,hdma_i2c2_tx); + + /* I2C2 interrupt Init */ + HAL_NVIC_SetPriority(I2C2_EV_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(I2C2_EV_IRQn); + /* USER CODE BEGIN I2C2_MspInit 1 */ + + /* USER CODE END I2C2_MspInit 1 */ + } } @@ -183,6 +241,31 @@ void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c) /* USER CODE END I2C1_MspDeInit 1 */ } + else if(hi2c->Instance==I2C2) + { + /* USER CODE BEGIN I2C2_MspDeInit 0 */ + + /* USER CODE END I2C2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C2_CLK_DISABLE(); + + /**I2C2 GPIO Configuration + PB10 ------> I2C2_SCL + PB11 ------> I2C2_SDA + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11); + + /* I2C2 DMA DeInit */ + HAL_DMA_DeInit(hi2c->hdmatx); + + /* I2C2 interrupt DeInit */ + HAL_NVIC_DisableIRQ(I2C2_EV_IRQn); + /* USER CODE BEGIN I2C2_MspDeInit 1 */ + + /* USER CODE END I2C2_MspDeInit 1 */ + } } @@ -639,6 +722,30 @@ void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai) GPIO_InitTypeDef GPIO_InitStruct; /* SAI1 */ + if(hsai->Instance==SAI1_Block_A) + { + /* Peripheral clock enable */ + if (SAI1_client == 0) + { + __HAL_RCC_SAI1_CLK_ENABLE(); + + /* Peripheral interrupt init*/ + HAL_NVIC_SetPriority(SAI1_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(SAI1_IRQn); + } + SAI1_client ++; + + /**SAI1_A_Block_A GPIO Configuration + PC1 ------> SAI1_SD_A + */ + GPIO_InitStruct.Pin = GPIO_PIN_1; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF6_SAI1; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + } if(hsai->Instance==SAI1_Block_B) { /* Peripheral clock enable */ @@ -698,6 +805,23 @@ void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai) void HAL_SAI_MspDeInit(SAI_HandleTypeDef* hsai) { /* SAI1 */ + if(hsai->Instance==SAI1_Block_A) + { + SAI1_client --; + if (SAI1_client == 0) + { + /* Peripheral clock disable */ + __HAL_RCC_SAI1_CLK_DISABLE(); + /* SAI1 interrupt DeInit */ + HAL_NVIC_DisableIRQ(SAI1_IRQn); + } + + /**SAI1_A_Block_A GPIO Configuration + PC1 ------> SAI1_SD_A + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1); + + } if(hsai->Instance==SAI1_Block_B) { SAI1_client --; diff --git a/Core/Src/stm32h7xx_it.c b/Core/Src/stm32h7xx_it.c index fdc1cde..68ffa17 100644 --- a/Core/Src/stm32h7xx_it.c +++ b/Core/Src/stm32h7xx_it.c @@ -56,7 +56,9 @@ /* External variables --------------------------------------------------------*/ extern DMA_HandleTypeDef hdma_i2c1_tx; +extern DMA_HandleTypeDef hdma_i2c2_tx; extern I2C_HandleTypeDef hi2c1; +extern I2C_HandleTypeDef hi2c2; extern DMA_HandleTypeDef hdma_sai1_b; extern SAI_HandleTypeDef hsai_BlockB1; extern SD_HandleTypeDef hsd1; @@ -195,6 +197,20 @@ void I2C1_EV_IRQHandler(void) /* USER CODE END I2C1_EV_IRQn 1 */ } +/** + * @brief This function handles I2C2 event interrupt. + */ +void I2C2_EV_IRQHandler(void) +{ + /* USER CODE BEGIN I2C2_EV_IRQn 0 */ + + /* USER CODE END I2C2_EV_IRQn 0 */ + HAL_I2C_EV_IRQHandler(&hi2c2); + /* USER CODE BEGIN I2C2_EV_IRQn 1 */ + + /* USER CODE END I2C2_EV_IRQn 1 */ +} + /** * @brief This function handles USART1 global interrupt. */ @@ -265,6 +281,20 @@ void DMA2_Stream1_IRQHandler(void) /* USER CODE END DMA2_Stream1_IRQn 1 */ } +/** + * @brief This function handles DMA2 stream2 global interrupt. + */ +void DMA2_Stream2_IRQHandler(void) +{ + /* USER CODE BEGIN DMA2_Stream2_IRQn 0 */ + + /* USER CODE END DMA2_Stream2_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_i2c2_tx); + /* USER CODE BEGIN DMA2_Stream2_IRQn 1 */ + + /* USER CODE END DMA2_Stream2_IRQn 1 */ +} + /** * @brief This function handles SAI1 global interrupt. */ diff --git a/User/audio/audio_hal.c b/User/audio/audio_hal.c index a166520..07e92d9 100644 --- a/User/audio/audio_hal.c +++ b/User/audio/audio_hal.c @@ -27,7 +27,7 @@ void HAL_SAI_TxHalfCpltCallback(SAI_HandleTypeDef *hsai) free(sample.buffer_ptr); //释放使用完的缓冲区 } - HAL_GPIO_WritePin(LED_G_GPIO_Port, LED_G_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_SET); portYIELD_FROM_ISR(need_yield); } @@ -41,7 +41,7 @@ void HAL_SAI_TxCpltCallback(SAI_HandleTypeDef *hsai) free(sample.buffer_ptr); //释放使用完的缓冲区 } - HAL_GPIO_WritePin(LED_G_GPIO_Port, LED_G_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_RESET); portYIELD_FROM_ISR(need_yield); } diff --git a/User/audio/audio_player_mp3.c b/User/audio/audio_player_mp3.c index 17a2302..25e76f3 100644 --- a/User/audio/audio_player_mp3.c +++ b/User/audio/audio_player_mp3.c @@ -58,7 +58,7 @@ void music_mp3_play(const char *file_name) // if (bytes_read > 0) { // elog_verbose(TAG, "reading %d bytes from file", (int)bytes_read); // } - HAL_GPIO_TogglePin(LED_B_GPIO_Port, LED_B_Pin); + HAL_GPIO_TogglePin(LED_Y_GPIO_Port, LED_Y_Pin); if(file_buffer_available <= 0) { //文件已经读取完毕 elog_info(TAG, "play done"); diff --git a/User/bsp/bsp_aic3204.c b/User/bsp/bsp_aic3204.c index a629aa8..924c6e7 100644 --- a/User/bsp/bsp_aic3204.c +++ b/User/bsp/bsp_aic3204.c @@ -183,6 +183,11 @@ HAL_StatusTypeDef bsp_aic3204_init(I2C_HandleTypeDef *hi2c) // 设置DAC信号处理块(PRB)为PRB_1 bsp_aic3204_write_reg(hi2c, 0x3C, 1); + // 设置左DAC音量 + bsp_aic3204_write_reg(hi2c, 0x41, (uint8_t)-64); + // 设置右DAC音量 + bsp_aic3204_write_reg(hi2c, 0x42, (uint8_t)-64); + // 选择寄存器页1 bsp_aic3204_write_reg(hi2c, 0x00, 0x01); // 关闭内部AVDD微供电 @@ -208,8 +213,18 @@ HAL_StatusTypeDef bsp_aic3204_init(I2C_HandleTypeDef *hi2c) bsp_aic3204_write_reg(hi2c, 0x10, 0x00); // Set the HPR gain to 0dB bsp_aic3204_write_reg(hi2c, 0x11, 0x00); - // Power up HPL and HPR drivers - bsp_aic3204_write_reg(hi2c, 0x09, 0x30); + + // 左声道DAC输出到LOL + bsp_aic3204_write_reg(hi2c, 0x0E, 0x08); + // 右声道DAC输出到LOR + bsp_aic3204_write_reg(hi2c, 0x0F, 0x08); + // 左声道DAC输出到LOL 增益-6dB + bsp_aic3204_write_reg(hi2c, 0x12, 0x00); + // 右声道DAC输出到LOR 增益-6dB + bsp_aic3204_write_reg(hi2c, 0x13, 0x00); + + // 启动HPL HPR LOL LOR驱动器 + bsp_aic3204_write_reg(hi2c, 0x09, 0x3C); // Wait for 2.5 sec for soft stepping to take effect vTaskDelay(pdMS_TO_TICKS(1000)); diff --git a/User/tasks/task_debug.c b/User/tasks/task_debug.c index 4bad635..88be62a 100644 --- a/User/tasks/task_debug.c +++ b/User/tasks/task_debug.c @@ -25,7 +25,7 @@ static uint32_t task_debug_runtime_stats_update_interval_ms = TASK_DEBUG_RUNTIME void task_debug_led_toggle_routine(uint64_t millisecs_elapsed) { if ((millisecs_elapsed % TASK_DEBUG_LED_TOGGLE_INTERVAL_MS == 0)) { - HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); + HAL_GPIO_TogglePin(LED_B_GPIO_Port, LED_B_Pin); } } @@ -57,7 +57,7 @@ void task_debug_heap_usage_print_routine(uint64_t millisecs_elapsed) void task_debug_oled_init(void) { - HAL_StatusTypeDef oled_status = bsp_oled_init(&hi2c1); + HAL_StatusTypeDef oled_status = bsp_oled_init(&hi2c2); if (oled_status != HAL_OK) { elog_warn(TAG, "oled initialization failed, oled print is disabled"); diff --git a/User/tasks/task_main.c b/User/tasks/task_main.c index 4d00c4e..ac39655 100644 --- a/User/tasks/task_main.c +++ b/User/tasks/task_main.c @@ -119,7 +119,7 @@ void task_main_entry(void *param) // lv_port_disp_init(); // lv_demo_music(); - // task_debug_create(NULL); + task_debug_create(NULL); // FMC_SDRAM_CommandTypeDef command; // SDRAM_Initialization_Sequence(&hsdram1, &command); @@ -143,11 +143,13 @@ void task_main_entry(void *param) } } - // util_i2c_scan(&hi2c1); HAL_GPIO_WritePin(CODEC_EN_GPIO_Port, CODEC_EN_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(TP_RST_GPIO_Port, TP_RST_Pin, GPIO_PIN_SET); vTaskDelay(20); bsp_aic3204_init(&hi2c1); + util_i2c_scan(&hi2c1); + while (1) { music_mp3_play("夏川椎菜 - No.1.mp3"); music_mp3_play("HoneyWorks,早見沙織 - 可愛くてごめん.mp3"); diff --git a/stm32h743_player.ioc b/stm32h743_player.ioc index 2d377fe..6de609c 100644 --- a/stm32h743_player.ioc +++ b/stm32h743_player.ioc @@ -24,10 +24,29 @@ Dma.I2C1_TX.2.SyncEnable=DISABLE Dma.I2C1_TX.2.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT Dma.I2C1_TX.2.SyncRequestNumber=1 Dma.I2C1_TX.2.SyncSignalID=NONE +Dma.I2C2_TX.3.Direction=DMA_MEMORY_TO_PERIPH +Dma.I2C2_TX.3.EventEnable=DISABLE +Dma.I2C2_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE +Dma.I2C2_TX.3.Instance=DMA2_Stream2 +Dma.I2C2_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.I2C2_TX.3.MemInc=DMA_MINC_ENABLE +Dma.I2C2_TX.3.Mode=DMA_NORMAL +Dma.I2C2_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.I2C2_TX.3.PeriphInc=DMA_PINC_DISABLE +Dma.I2C2_TX.3.Polarity=HAL_DMAMUX_REQ_GEN_RISING +Dma.I2C2_TX.3.Priority=DMA_PRIORITY_LOW +Dma.I2C2_TX.3.RequestNumber=1 +Dma.I2C2_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber +Dma.I2C2_TX.3.SignalID=NONE +Dma.I2C2_TX.3.SyncEnable=DISABLE +Dma.I2C2_TX.3.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT +Dma.I2C2_TX.3.SyncRequestNumber=1 +Dma.I2C2_TX.3.SyncSignalID=NONE Dma.Request0=USART1_TX Dma.Request1=SAI1_B Dma.Request2=I2C1_TX -Dma.RequestsNb=3 +Dma.Request3=I2C2_TX +Dma.RequestsNb=4 Dma.SAI1_B.1.Direction=DMA_MEMORY_TO_PERIPH Dma.SAI1_B.1.EventEnable=DISABLE Dma.SAI1_B.1.FIFOMode=DMA_FIFOMODE_DISABLE @@ -111,135 +130,145 @@ I2C1.Analog_Filter=I2C_ANALOGFILTER_ENABLE I2C1.I2C_Speed_Mode=I2C_Fast I2C1.IPParameters=Timing,I2C_Speed_Mode,Analog_Filter I2C1.Timing=0x00B03FDB +I2C2.I2C_Speed_Mode=I2C_Fast_Plus +I2C2.IPParameters=Timing,I2C_Speed_Mode +I2C2.Timing=0x0050174F KeepUserPlacement=false Mcu.CPN=STM32H743IIT6 Mcu.Family=STM32H7 Mcu.IP0=CORTEX_M7 Mcu.IP1=DEBUG -Mcu.IP10=SYS -Mcu.IP11=TIM2 -Mcu.IP12=USART1 +Mcu.IP10=SDMMC1 +Mcu.IP11=SYS +Mcu.IP12=TIM2 +Mcu.IP13=USART1 Mcu.IP2=DMA Mcu.IP3=FMC Mcu.IP4=FREERTOS Mcu.IP5=I2C1 -Mcu.IP6=NVIC -Mcu.IP7=RCC -Mcu.IP8=SAI1 -Mcu.IP9=SDMMC1 -Mcu.IPNb=13 +Mcu.IP6=I2C2 +Mcu.IP7=NVIC +Mcu.IP8=RCC +Mcu.IP9=SAI1 +Mcu.IPNb=14 Mcu.Name=STM32H743IITx Mcu.Package=LQFP176 Mcu.Pin0=PE2 Mcu.Pin1=PE3 -Mcu.Pin10=PF1 -Mcu.Pin100=PE1 -Mcu.Pin101=PI4 -Mcu.Pin102=PI5 -Mcu.Pin103=PI6 -Mcu.Pin104=PI7 -Mcu.Pin105=VP_FREERTOS_VS_CMSIS_V1 -Mcu.Pin106=VP_SAI1_VP_$IpInstance_SAIB_SAI_BASIC -Mcu.Pin107=VP_SYS_VS_tim6 -Mcu.Pin108=VP_TIM2_VS_ClockSourceINT -Mcu.Pin11=PF2 -Mcu.Pin12=PF3 -Mcu.Pin13=PF4 -Mcu.Pin14=PF5 -Mcu.Pin15=PF6 -Mcu.Pin16=PF7 +Mcu.Pin10=PI11 +Mcu.Pin100=PG15 +Mcu.Pin101=PB3 (JTDO/TRACESWO) +Mcu.Pin102=PB6 +Mcu.Pin103=PB8 +Mcu.Pin104=PB9 +Mcu.Pin105=PE0 +Mcu.Pin106=PE1 +Mcu.Pin107=PI4 +Mcu.Pin108=PI5 +Mcu.Pin109=PI6 +Mcu.Pin11=PF0 +Mcu.Pin110=PI7 +Mcu.Pin111=VP_FREERTOS_VS_CMSIS_V1 +Mcu.Pin112=VP_SAI1_VP_$IpInstance_SAIB_SAI_BASIC +Mcu.Pin113=VP_SYS_VS_tim6 +Mcu.Pin114=VP_TIM2_VS_ClockSourceINT +Mcu.Pin12=PF1 +Mcu.Pin13=PF2 +Mcu.Pin14=PF3 +Mcu.Pin15=PF4 +Mcu.Pin16=PF5 Mcu.Pin17=PF8 Mcu.Pin18=PF9 Mcu.Pin19=PF10 -Mcu.Pin2=PE5 +Mcu.Pin2=PE4 Mcu.Pin20=PH0-OSC_IN (PH0) Mcu.Pin21=PH1-OSC_OUT (PH1) Mcu.Pin22=PC1 -Mcu.Pin23=PC3_C +Mcu.Pin23=PA1 Mcu.Pin24=PA2 Mcu.Pin25=PH2 Mcu.Pin26=PH3 Mcu.Pin27=PH5 -Mcu.Pin28=PA5 -Mcu.Pin29=PA6 -Mcu.Pin3=PE6 -Mcu.Pin30=PC4 -Mcu.Pin31=PB2 -Mcu.Pin32=PF11 -Mcu.Pin33=PF12 -Mcu.Pin34=PF13 -Mcu.Pin35=PF14 -Mcu.Pin36=PF15 -Mcu.Pin37=PG0 -Mcu.Pin38=PG1 -Mcu.Pin39=PE7 -Mcu.Pin4=PC14-OSC32_IN (OSC32_IN) -Mcu.Pin40=PE8 -Mcu.Pin41=PE9 -Mcu.Pin42=PE10 -Mcu.Pin43=PE11 -Mcu.Pin44=PE12 -Mcu.Pin45=PE13 -Mcu.Pin46=PE14 -Mcu.Pin47=PE15 -Mcu.Pin48=PH6 -Mcu.Pin49=PH7 -Mcu.Pin5=PC15-OSC32_OUT (OSC32_OUT) -Mcu.Pin50=PH8 -Mcu.Pin51=PH9 -Mcu.Pin52=PH10 -Mcu.Pin53=PH11 -Mcu.Pin54=PH12 -Mcu.Pin55=PD8 -Mcu.Pin56=PD9 -Mcu.Pin57=PD10 -Mcu.Pin58=PD11 -Mcu.Pin59=PD12 -Mcu.Pin6=PI9 -Mcu.Pin60=PD13 -Mcu.Pin61=PD14 -Mcu.Pin62=PD15 -Mcu.Pin63=PG2 -Mcu.Pin64=PG3 -Mcu.Pin65=PG4 -Mcu.Pin66=PG5 -Mcu.Pin67=PG6 -Mcu.Pin68=PG7 -Mcu.Pin69=PG8 -Mcu.Pin7=PI10 -Mcu.Pin70=PC8 -Mcu.Pin71=PC9 -Mcu.Pin72=PA8 -Mcu.Pin73=PA9 -Mcu.Pin74=PA10 -Mcu.Pin75=PA11 -Mcu.Pin76=PA12 -Mcu.Pin77=PA13 (JTMS/SWDIO) -Mcu.Pin78=PH13 -Mcu.Pin79=PH14 -Mcu.Pin8=PI11 -Mcu.Pin80=PH15 -Mcu.Pin81=PI0 -Mcu.Pin82=PI2 -Mcu.Pin83=PA14 (JTCK/SWCLK) -Mcu.Pin84=PC10 -Mcu.Pin85=PC11 -Mcu.Pin86=PC12 -Mcu.Pin87=PD0 -Mcu.Pin88=PD1 -Mcu.Pin89=PD2 -Mcu.Pin9=PF0 -Mcu.Pin90=PD6 -Mcu.Pin91=PG12 -Mcu.Pin92=PG13 -Mcu.Pin93=PG14 -Mcu.Pin94=PG15 -Mcu.Pin95=PB3 (JTDO/TRACESWO) -Mcu.Pin96=PB6 -Mcu.Pin97=PB8 -Mcu.Pin98=PB9 -Mcu.Pin99=PE0 -Mcu.PinsNb=109 +Mcu.Pin28=PA3 +Mcu.Pin29=PA5 +Mcu.Pin3=PE5 +Mcu.Pin30=PA6 +Mcu.Pin31=PA7 +Mcu.Pin32=PB0 +Mcu.Pin33=PB1 +Mcu.Pin34=PB2 +Mcu.Pin35=PF11 +Mcu.Pin36=PF12 +Mcu.Pin37=PF13 +Mcu.Pin38=PF14 +Mcu.Pin39=PF15 +Mcu.Pin4=PE6 +Mcu.Pin40=PG0 +Mcu.Pin41=PG1 +Mcu.Pin42=PE7 +Mcu.Pin43=PE8 +Mcu.Pin44=PE9 +Mcu.Pin45=PE10 +Mcu.Pin46=PE11 +Mcu.Pin47=PE12 +Mcu.Pin48=PE13 +Mcu.Pin49=PE14 +Mcu.Pin5=PI8 +Mcu.Pin50=PE15 +Mcu.Pin51=PB10 +Mcu.Pin52=PB11 +Mcu.Pin53=PH6 +Mcu.Pin54=PH7 +Mcu.Pin55=PH8 +Mcu.Pin56=PH9 +Mcu.Pin57=PH10 +Mcu.Pin58=PH11 +Mcu.Pin59=PH12 +Mcu.Pin6=PC14-OSC32_IN (OSC32_IN) +Mcu.Pin60=PD8 +Mcu.Pin61=PD9 +Mcu.Pin62=PD10 +Mcu.Pin63=PD11 +Mcu.Pin64=PD12 +Mcu.Pin65=PD13 +Mcu.Pin66=PD14 +Mcu.Pin67=PD15 +Mcu.Pin68=PG2 +Mcu.Pin69=PG3 +Mcu.Pin7=PC15-OSC32_OUT (OSC32_OUT) +Mcu.Pin70=PG4 +Mcu.Pin71=PG5 +Mcu.Pin72=PG6 +Mcu.Pin73=PG7 +Mcu.Pin74=PG8 +Mcu.Pin75=PC8 +Mcu.Pin76=PC9 +Mcu.Pin77=PA8 +Mcu.Pin78=PA9 +Mcu.Pin79=PA10 +Mcu.Pin8=PI9 +Mcu.Pin80=PA11 +Mcu.Pin81=PA12 +Mcu.Pin82=PA13 (JTMS/SWDIO) +Mcu.Pin83=PH13 +Mcu.Pin84=PH14 +Mcu.Pin85=PH15 +Mcu.Pin86=PI0 +Mcu.Pin87=PI2 +Mcu.Pin88=PI3 +Mcu.Pin89=PA14 (JTCK/SWCLK) +Mcu.Pin9=PI10 +Mcu.Pin90=PC10 +Mcu.Pin91=PC11 +Mcu.Pin92=PC12 +Mcu.Pin93=PD0 +Mcu.Pin94=PD1 +Mcu.Pin95=PD2 +Mcu.Pin96=PD6 +Mcu.Pin97=PG12 +Mcu.Pin98=PG13 +Mcu.Pin99=PG14 +Mcu.PinsNb=115 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32H743IITx @@ -249,10 +278,12 @@ NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false NVIC.DMA1_Stream0_IRQn=true\:6\:0\:true\:false\:true\:true\:false\:true\:true NVIC.DMA2_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true NVIC.DMA2_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true +NVIC.DMA2_Stream2_IRQn=true\:5\:0\:false\:false\:true\:false\:false\:true\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false NVIC.ForceEnableDMAVector=true NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false NVIC.I2C1_EV_IRQn=true\:8\:0\:true\:false\:true\:true\:true\:true\:true +NVIC.I2C2_EV_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true\:false NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false\:false @@ -269,6 +300,14 @@ NVIC.TimeBase=TIM6_DAC_IRQn NVIC.TimeBaseIP=TIM6 NVIC.USART1_IRQn=true\:14\:0\:true\:false\:true\:true\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false +PA1.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PA1.GPIO_Label=LED_P +PA1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP +PA1.GPIO_PuPd=GPIO_NOPULL +PA1.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PA1.Locked=true +PA1.PinState=GPIO_PIN_RESET +PA1.Signal=GPIO_Output PA10.GPIOParameters=GPIO_Speed PA10.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PA10.Locked=true @@ -292,22 +331,32 @@ PA2.GPIOParameters=GPIO_Speed PA2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PA2.Locked=true PA2.Signal=LTDC_R1 -PA5.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP -PA5.GPIO_Label=LED_B -PA5.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD -PA5.GPIO_PuPd=GPIO_NOPULL -PA5.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM +PA3.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +PA3.GPIO_Label=KEY2 +PA3.GPIO_Mode=GPIO_MODE_INPUT +PA3.GPIO_PuPd=GPIO_PULLUP +PA3.Locked=true +PA3.Signal=GPIO_Input +PA5.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +PA5.GPIO_Label=KEY1 +PA5.GPIO_Mode=GPIO_MODE_INPUT +PA5.GPIO_PuPd=GPIO_PULLUP PA5.Locked=true -PA5.PinState=GPIO_PIN_SET -PA5.Signal=GPIO_Output -PA6.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP -PA6.GPIO_Label=LED_G -PA6.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD -PA6.GPIO_PuPd=GPIO_NOPULL -PA6.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM +PA5.Signal=GPIO_Input +PA6.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +PA6.GPIO_Label=KEY3 +PA6.GPIO_Mode=GPIO_MODE_INPUT +PA6.GPIO_PuPd=GPIO_PULLUP PA6.Locked=true -PA6.PinState=GPIO_PIN_SET -PA6.Signal=GPIO_Output +PA6.Signal=GPIO_Input +PA7.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PA7.GPIO_Label=CODEC_RST +PA7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP +PA7.GPIO_PuPd=GPIO_NOPULL +PA7.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PA7.Locked=true +PA7.PinState=GPIO_PIN_RESET +PA7.Signal=GPIO_Output PA8.GPIOParameters=GPIO_Speed PA8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PA8.Locked=true @@ -317,6 +366,25 @@ PA9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PA9.Locked=true PA9.Mode=Asynchronous PA9.Signal=USART1_TX +PB0.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PB0.GPIO_Label=CODEC_EN +PB0.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP +PB0.GPIO_PuPd=GPIO_NOPULL +PB0.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PB0.Locked=true +PB0.PinState=GPIO_PIN_RESET +PB0.Signal=GPIO_Output +PB1.GPIOParameters=GPIO_PuPd,GPIO_Label +PB1.GPIO_Label=HP_DET +PB1.GPIO_PuPd=GPIO_PULLUP +PB1.Locked=true +PB1.Signal=GPIO_Input +PB10.Locked=true +PB10.Mode=I2C +PB10.Signal=I2C2_SCL +PB11.Locked=true +PB11.Mode=I2C +PB11.Signal=I2C2_SDA PB2.GPIOParameters=GPIO_Speed PB2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PB2.Locked=true @@ -340,13 +408,8 @@ PB9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PB9.Locked=true PB9.Mode=I2C PB9.Signal=I2C1_SDA -PC1.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP -PC1.GPIO_Label=CODEC_RST -PC1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP -PC1.GPIO_PuPd=GPIO_PULLUP PC1.Locked=true -PC1.PinState=GPIO_PIN_RESET -PC1.Signal=GPIO_Output +PC1.Signal=SAI1_SD_A PC10.Locked=true PC10.Mode=SD_4_bits_Wide_bus PC10.Signal=SDMMC1_D2 @@ -360,19 +423,6 @@ PC14-OSC32_IN\ (OSC32_IN).Locked=true PC14-OSC32_IN\ (OSC32_IN).Signal=RCC_OSC32_IN PC15-OSC32_OUT\ (OSC32_OUT).Locked=true PC15-OSC32_OUT\ (OSC32_OUT).Signal=RCC_OSC32_OUT -PC3_C.GPIOParameters=GPIO_Speed,GPIO_Label -PC3_C.GPIO_Label=CODEC_EN -PC3_C.GPIO_Speed=GPIO_SPEED_FREQ_LOW -PC3_C.Locked=true -PC3_C.Signal=GPIO_Output -PC4.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP -PC4.GPIO_Label=LED_R -PC4.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD -PC4.GPIO_PuPd=GPIO_NOPULL -PC4.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM -PC4.Locked=true -PC4.PinState=GPIO_PIN_SET -PC4.Signal=GPIO_Output PC8.Locked=true PC8.Mode=SD_4_bits_Wide_bus PC8.Signal=SDMMC1_D0 @@ -437,6 +487,13 @@ PE3.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PE3.Locked=true PE3.Mode=SAI_B_AsyncSlave PE3.Signal=SAI1_SD_B +PE4.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PE4.GPIO_Label=TP_RST +PE4.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP +PE4.GPIO_PuPd=GPIO_NOPULL +PE4.Locked=true +PE4.PinState=GPIO_PIN_RESET +PE4.Signal=GPIO_Output PE5.GPIOParameters=GPIO_Speed PE5.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PE5.Locked=true @@ -477,16 +534,6 @@ PF4.Locked=true PF4.Signal=FMC_A4 PF5.Locked=true PF5.Signal=FMC_A5 -PF6.GPIOParameters=GPIO_PuPd,GPIO_Label -PF6.GPIO_Label=KEY1 -PF6.GPIO_PuPd=GPIO_PULLUP -PF6.Locked=true -PF6.Signal=GPIO_Input -PF7.GPIOParameters=GPIO_PuPd,GPIO_Label -PF7.GPIO_Label=KEY2 -PF7.GPIO_PuPd=GPIO_PULLUP -PF7.Locked=true -PF7.Signal=GPIO_Input PF8.GPIOParameters=GPIO_Speed PF8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PF8.Locked=true @@ -517,12 +564,13 @@ PG15.Locked=true PG15.Signal=FMC_SDNCAS PG2.Locked=true PG2.Signal=FMC_A12 -PG3.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP -PG3.GPIO_Label=OSC_EN -PG3.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD -PG3.GPIO_PuPd=GPIO_PULLUP +PG3.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PG3.GPIO_Label=LED_Y +PG3.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP +PG3.GPIO_PuPd=GPIO_NOPULL +PG3.GPIO_Speed=GPIO_SPEED_FREQ_LOW PG3.Locked=true -PG3.PinState=GPIO_PIN_SET +PG3.PinState=GPIO_PIN_RESET PG3.Signal=GPIO_Output PG4.Locked=true PG4.Signal=FMC_A14_BA0 @@ -581,10 +629,10 @@ PH6.GPIO_Speed=GPIO_SPEED_FREQ_HIGH PH6.Locked=true PH6.Signal=S_TIM12_CH1 PH7.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP -PH7.GPIO_Label=LED -PH7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD +PH7.GPIO_Label=LED_B +PH7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP PH7.GPIO_PuPd=GPIO_NOPULL -PH7.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM +PH7.GPIO_Speed=GPIO_SPEED_FREQ_LOW PH7.Locked=true PH7.PinState=GPIO_PIN_SET PH7.Signal=GPIO_Output @@ -604,14 +652,23 @@ PI10.GPIOParameters=GPIO_Speed PI10.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PI10.Locked=true PI10.Signal=LTDC_HSYNC -PI11.GPIOParameters=GPIO_Speed -PI11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH +PI11.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PI11.GPIO_Label=LED_R +PI11.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP +PI11.GPIO_PuPd=GPIO_NOPULL +PI11.GPIO_Speed=GPIO_SPEED_FREQ_LOW PI11.Locked=true -PI11.Signal=LTDC_G6 +PI11.PinState=GPIO_PIN_RESET +PI11.Signal=GPIO_Output PI2.GPIOParameters=GPIO_Speed PI2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PI2.Locked=true PI2.Signal=LTDC_G7 +PI3.GPIOParameters=GPIO_PuPd,GPIO_Label +PI3.GPIO_Label=TP_INT +PI3.GPIO_PuPd=GPIO_PULLUP +PI3.Locked=true +PI3.Signal=GPIO_Input PI4.GPIOParameters=GPIO_Speed PI4.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PI4.Locked=true @@ -628,6 +685,14 @@ PI7.GPIOParameters=GPIO_Speed PI7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PI7.Locked=true PI7.Signal=LTDC_B7 +PI8.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PI8.GPIO_Label=LED_G +PI8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP +PI8.GPIO_PuPd=GPIO_NOPULL +PI8.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PI8.Locked=true +PI8.PinState=GPIO_PIN_RESET +PI8.Signal=GPIO_Output PI9.GPIOParameters=GPIO_Speed PI9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PI9.Locked=true @@ -647,7 +712,7 @@ ProjectManager.FreePins=false ProjectManager.HalAssertFull=false ProjectManager.HeapSize=0x0 ProjectManager.KeepUserCode=true -ProjectManager.LastFirmware=true +ProjectManager.LastFirmware=false ProjectManager.LibraryCopy=1 ProjectManager.MainLocation=Core/Src ProjectManager.MultiThreaded=true @@ -665,7 +730,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_SAI1_Init-SAI1-false-HAL-true,8-MX_TIM2_Init-TIM2-false-HAL-true,9-MX_FMC_Init-FMC-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_SAI1_Init-SAI1-false-HAL-true,8-MX_TIM2_Init-TIM2-false-HAL-true,9-MX_FMC_Init-FMC-false-HAL-true,10-MX_I2C2_Init-I2C2-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true RCC.ADCFreq_Value=100000000 RCC.AHB12Freq_Value=240000000 RCC.AHB4Freq_Value=240000000