适配新版硬件

This commit is contained in:
wangyz1997 2024-04-08 01:30:47 +08:00
parent af2b9e5601
commit 349f75d257
11 changed files with 555 additions and 241 deletions

View File

@ -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 */

View File

@ -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 */

View File

@ -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)
{

View File

@ -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 --;

View File

@ -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.
*/

View File

@ -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);
}

View File

@ -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");

View File

@ -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));

View File

@ -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");

View File

@ -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");

View File

@ -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