From 448d6c050697a6bb7f4b7b02f08ef8fc8e5cd027 Mon Sep 17 00:00:00 2001 From: QuakeGod <QuakeGod@sina.com> Date: 星期一, 17 十月 2022 03:20:54 +0800 Subject: [PATCH] Merge branch 'dev1' of file://hasee-k680e/GitBase/F030C8xx_KLink into dev1 --- Src/BSP.c | 182 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 157 insertions(+), 25 deletions(-) diff --git a/Src/BSP.c b/Src/BSP.c index eec4f09..34a69bd 100644 --- a/Src/BSP.c +++ b/Src/BSP.c @@ -105,6 +105,7 @@ * @brief System Clock Configuration * @retval None */ + void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; @@ -116,14 +117,15 @@ RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; +// RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; #if (XLAT_FREQ == 12) - RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4; + RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV3; #else - RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6; + RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV2; #endif - - RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1; + + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); @@ -158,7 +160,8 @@ /**Configure the Systick interrupt time */ - HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/10000); +// HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/10000); + HAL_SYSTICK_Config(48000000/10000); /**Configure the Systick */ @@ -193,7 +196,40 @@ /* USER CODE END IWDG_Init 2 */ } +/** + * @brief TIM6 Initialization Function + * @param None + * @retval None + */ +void MX_TIM6_Init(void) +{ + /* USER CODE BEGIN TIM6_Init 0 */ + + /* USER CODE END TIM6_Init 0 */ + + LL_TIM_InitTypeDef TIM_InitStruct = {0}; + + /* Peripheral clock enable */ + LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM6); + + /* TIM6 interrupt Init */ + NVIC_SetPriority(TIM6_IRQn, 0); + NVIC_EnableIRQ(TIM6_IRQn); + + /* USER CODE BEGIN TIM6_Init 1 */ + + /* USER CODE END TIM6_Init 1 */ + TIM_InitStruct.Prescaler = 47; + TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; + TIM_InitStruct.Autoreload = 999; + LL_TIM_Init(TIM6, &TIM_InitStruct); + LL_TIM_DisableARRPreload(TIM6); + /* USER CODE BEGIN TIM6_Init 2 */ + LL_TIM_EnableIT_UPDATE(TIM6); + /* USER CODE END TIM6_Init 2 */ + +} /* ADC init function */ void MX_ADC_Init(void) { @@ -263,9 +299,9 @@ void MX_SPI1_Init(void) { - LL_SPI_InitTypeDef SPI_InitStruct; + LL_SPI_InitTypeDef SPI_InitStruct = {0}; - LL_GPIO_InitTypeDef GPIO_InitStruct; + LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; /* Peripheral clock enable */ LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_SPI1); @@ -317,7 +353,7 @@ GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; - GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; + GPIO_InitStruct.Pull = LL_GPIO_PULL_UP; GPIO_InitStruct.Alternate = LL_GPIO_AF_0; LL_GPIO_Init(GPIOB, &GPIO_InitStruct); @@ -334,9 +370,51 @@ NVIC_EnableIRQ(SPI1_IRQn); /* USER CODE BEGIN SPI1_Init 1 */ +#if (BOARD_TYPE == 14) + /* USER CODE END SPI1_Init 1 */ /* SPI1 parameter configuration*/ + SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX; + SPI_InitStruct.Mode = LL_SPI_MODE_SLAVE; + SPI_InitStruct.DataWidth = LL_SPI_DATAWIDTH_8BIT; + SPI_InitStruct.ClockPolarity = LL_SPI_POLARITY_LOW; //LL_SPI_POLARITY_LOW; + SPI_InitStruct.ClockPhase = LL_SPI_PHASE_2EDGE ; //LL_SPI_PHASE_1EDGE; + SPI_InitStruct.NSS = LL_SPI_NSS_SOFT; + SPI_InitStruct.BaudRate = LL_SPI_BAUDRATEPRESCALER_DIV4; + SPI_InitStruct.BitOrder = LL_SPI_LSB_FIRST; + SPI_InitStruct.CRCCalculation = LL_SPI_CRCCALCULATION_DISABLE; + SPI_InitStruct.CRCPoly = 7; + LL_SPI_Init(SPI1, &SPI_InitStruct); + + LL_SPI_SetStandard(SPI1, LL_SPI_PROTOCOL_MOTOROLA); + LL_SPI_DisableNSSPulseMgt(SPI1); + LL_SPI_SetRxFIFOThreshold(SPI1,LL_SPI_RX_FIFO_TH_QUARTER); +// LL_SPI_EnableNSSPulseMgt(SPI1); + + /* USER CODE BEGIN SPI1_Init 2 */ + +#elif (BOARD_TYPE == 13) + + SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX; + SPI_InitStruct.Mode = LL_SPI_MODE_MASTER; + SPI_InitStruct.DataWidth = LL_SPI_DATAWIDTH_8BIT; + SPI_InitStruct.ClockPolarity = LL_SPI_POLARITY_HIGH; //LL_SPI_POLARITY_LOW; + SPI_InitStruct.ClockPhase = LL_SPI_PHASE_2EDGE ; //LL_SPI_PHASE_1EDGE; + SPI_InitStruct.NSS = LL_SPI_NSS_SOFT; + SPI_InitStruct.BaudRate = LL_SPI_BAUDRATEPRESCALER_DIV2; + SPI_InitStruct.BitOrder = LL_SPI_MSB_FIRST; + SPI_InitStruct.CRCCalculation = LL_SPI_CRCCALCULATION_DISABLE; + SPI_InitStruct.CRCPoly = 7; + LL_SPI_Init(SPI1, &SPI_InitStruct); + + LL_SPI_SetStandard(SPI1, LL_SPI_PROTOCOL_MOTOROLA); + + LL_SPI_SetRxFIFOThreshold(SPI1,LL_SPI_RX_FIFO_TH_QUARTER); +// LL_SPI_EnableNSSPulseMgt(SPI1); + +#else + SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX; SPI_InitStruct.Mode = LL_SPI_MODE_MASTER; SPI_InitStruct.DataWidth = LL_SPI_DATAWIDTH_8BIT; @@ -350,9 +428,12 @@ LL_SPI_Init(SPI1, &SPI_InitStruct); LL_SPI_SetStandard(SPI1, LL_SPI_PROTOCOL_MOTOROLA); - + + LL_SPI_SetRxFIFOThreshold(SPI1,LL_SPI_RX_FIFO_TH_QUARTER); LL_SPI_EnableNSSPulseMgt(SPI1); - /* USER CODE BEGIN SPI1_Init 2 */ + +#endif + LL_SPI_Enable(SPI1); /* USER CODE END SPI1_Init 2 */ } @@ -560,7 +641,7 @@ // LL_USART_SetDESignalPolarity(USART2, LL_USART_DE_POLARITY_HIGH); LL_USART_SetDEAssertionTime(USART2, 3); LL_USART_SetDEDeassertionTime(USART2, 3); - LL_USART_EnableOneBitSamp(USART2); +// LL_USART_EnableOneBitSamp(USART2); // LL_USART_EnableAutoBaudRate(USART2); // LL_USART_SetAutoBaudRateMode(USART2, LL_USART_AUTOBAUD_DETECT_ON_FALLINGEDGE); LL_USART_DisableOverrunDetect(USART2); @@ -601,11 +682,12 @@ LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOB); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOC); + LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOF); /**/ /**/ - GPIO_InitStruct.Pin = LL_GPIO_PIN_6 ; //|LL_GPIO_PIN_7; + GPIO_InitStruct.Pin = LL_GPIO_PIN_6 |LL_GPIO_PIN_7; GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Pull = LL_GPIO_PULL_UP; @@ -642,26 +724,29 @@ if (GetBoardType()==2) { GPIO_InitStruct.Pin = LL_GPIO_PIN_3|LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7| - LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_15; + LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_15; } else if (GetBoardType()==9 || GetBoardType()==10 ) { - GPIO_InitStruct.Pin = LL_GPIO_PIN_3|LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7| - LL_GPIO_PIN_11|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_10| - LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_15; + GPIO_InitStruct.Pin = LL_GPIO_PIN_3|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7| + LL_GPIO_PIN_11|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_10| + LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_15; } else if ( GetBoardType() == 11 ) { GPIO_InitStruct.Pin = LL_GPIO_PIN_3|LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7| - LL_GPIO_PIN_2|LL_GPIO_PIN_10| - LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_15; - } else + LL_GPIO_PIN_2|LL_GPIO_PIN_10|LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_15; + } else if (BOARD_TYPE == 14) { + GPIO_InitStruct.Pin = LL_GPIO_PIN_6|LL_GPIO_PIN_7| + LL_GPIO_PIN_10|LL_GPIO_PIN_11|LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_14|LL_GPIO_PIN_15; + } else + { GPIO_InitStruct.Pin = LL_GPIO_PIN_3|LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7| - LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_10| - LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_15; - } + LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_10| + LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_15; + } GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; @@ -669,9 +754,7 @@ GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; LL_GPIO_Init(GPIOB, &GPIO_InitStruct); - LL_GPIO_SetOutputPin(GPIOB, LL_GPIO_PIN_3); - - GPIO_InitStruct.Pin = LL_GPIO_PIN_13|LL_GPIO_PIN_14; + GPIO_InitStruct.Pin = LL_GPIO_PIN_13|LL_GPIO_PIN_14|LL_GPIO_PIN_15; GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; GPIO_InitStruct.Speed = LL_GPIO_SPEED_LOW; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; @@ -682,5 +765,54 @@ // PWR_BackupAccessCmd( ENABLE );/* ????RTC??????*/ // RCC_LSEConfig( RCC_LSE_OFF ); /* ????????,PC14+PC15??????IO*/ // BKP_TamperPinCmd(DISABLE); /* ????????,PC13??????IO*/ + +#if (BORAD_TYPE ==12) + + GPIO_InitStruct.Pin = LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7; + GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Pull = LL_GPIO_PULL_UP; + LL_GPIO_Init(GPIOA, &GPIO_InitStruct); + LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_8); + + GPIO_InitStruct.Pin = LL_GPIO_PIN_9 ; //RST_PIN in + GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Pull = LL_GPIO_PULL_UP; + LL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = SYN_PIN ; //SYN_PIN Pin in + GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Pull = LL_GPIO_PULL_UP; + LL_GPIO_Init(SYN_PORT, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = ACK_PIN ; //ACK_PIN Pin out + GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Pull = LL_GPIO_OUTPUT_PUSHPULL; + LL_GPIO_Init(ACK_PORT, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = LL_GPIO_PIN_7 ; //485DE Pin out + GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Pull = LL_GPIO_OUTPUT_PUSHPULL; + LL_GPIO_Init(GPIOF, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = OE_PIN ; // OE Pin in + GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Pull = LL_GPIO_PULL_UP; + LL_GPIO_Init(OE_PORT, &GPIO_InitStruct); + +#elif (BOARD_TYPE == 13) + + GPIO_InitStruct.Pin = LL_GPIO_PIN_15 ; + GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Pull = LL_GPIO_OUTPUT_PUSHPULL; + LL_GPIO_Init(GPIOA, &GPIO_InitStruct); + +#endif } -- Gitblit v1.9.1