Merge pull request #2914 from tyustli/master

fix 429 uart2/3 hardware init and add can1
This commit is contained in:
Bernard Xiong 2019-08-02 13:39:14 +08:00 committed by GitHub
commit 0ed24743c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 436 additions and 162 deletions

View File

@ -557,9 +557,9 @@ static rt_err_t drv_control(struct rt_can_device *can, int cmd, void *arg)
break; break;
case RT_CAN_CMD_SET_MODE: case RT_CAN_CMD_SET_MODE:
argval = (rt_uint32_t) arg; argval = (rt_uint32_t) arg;
if (argval != RT_CAN_MODE_NORMAL || if (argval != RT_CAN_MODE_NORMAL &&
argval != RT_CAN_MODE_LISEN || argval != RT_CAN_MODE_LISEN &&
argval != RT_CAN_MODE_LOOPBACK || argval != RT_CAN_MODE_LOOPBACK &&
argval != RT_CAN_MODE_LOOPBACKANLISEN) argval != RT_CAN_MODE_LOOPBACKANLISEN)
{ {
return RT_ERROR; return RT_ERROR;
@ -592,7 +592,7 @@ static rt_err_t drv_control(struct rt_can_device *can, int cmd, void *arg)
break; break;
case RT_CAN_CMD_SET_PRIV: case RT_CAN_CMD_SET_PRIV:
argval = (rt_uint32_t) arg; argval = (rt_uint32_t) arg;
if (argval != RT_CAN_MODE_PRIV || if (argval != RT_CAN_MODE_PRIV &&
argval != RT_CAN_MODE_NOPRIV) argval != RT_CAN_MODE_NOPRIV)
{ {
return RT_ERROR; return RT_ERROR;

View File

@ -53,6 +53,7 @@
| UART | 支持 | UART1/2/3 | | UART | 支持 | UART1/2/3 |
| SPI | 支持 | SPI1/2/5 | | SPI | 支持 | SPI1/2/5 |
| I2C | 支持 | 软件 I2C | | I2C | 支持 | 软件 I2C |
| CAN | 支持 | PA12->TX, PA11->RX |
| ADC | 支持 | | | ADC | 支持 | |
| RTC | 支持 | 支持外部晶振和内部低速时钟 | | RTC | 支持 | 支持外部晶振和内部低速时钟 |
| WDT | 支持 | | | WDT | 支持 | |

File diff suppressed because one or more lines are too long

View File

@ -1,33 +1,20 @@
/** /**
****************************************************************************** ******************************************************************************
* @file stm32f4xx_hal_conf.h * @file stm32f4xx_hal_conf_template.h
* @brief HAL configuration file. * @author MCD Application Team
* @brief HAL configuration template file.
* This file should be copied to the application folder and renamed
* to stm32f4xx_hal_conf.h.
****************************************************************************** ******************************************************************************
* @attention * @attention
* *
* <h2><center>&copy; COPYRIGHT(c) 2018 STMicroelectronics</center></h2> * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
* All rights reserved.</center></h2>
* *
* Redistribution and use in source and binary forms, with or without modification, * This software component is licensed by ST under BSD 3-Clause license,
* are permitted provided that the following conditions are met: * the "License"; You may not use this file except in compliance with the
* 1. Redistributions of source code must retain the above copyright notice, * License. You may obtain a copy of the License at:
* this list of conditions and the following disclaimer. * opensource.org/licenses/BSD-3-Clause
* 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.
* *
****************************************************************************** ******************************************************************************
*/ */
@ -49,9 +36,9 @@
*/ */
#define HAL_MODULE_ENABLED #define HAL_MODULE_ENABLED
#define HAL_ADC_MODULE_ENABLED #define HAL_ADC_MODULE_ENABLED
/* #define HAL_CRYP_MODULE_ENABLED */ /* #define HAL_CRYP_MODULE_ENABLED */
/* #define HAL_CAN_MODULE_ENABLED */ #define HAL_CAN_MODULE_ENABLED
/* #define HAL_CRC_MODULE_ENABLED */ /* #define HAL_CRC_MODULE_ENABLED */
/* #define HAL_CRYP_MODULE_ENABLED */ /* #define HAL_CRYP_MODULE_ENABLED */
/* #define HAL_DAC_MODULE_ENABLED */ /* #define HAL_DAC_MODULE_ENABLED */
@ -92,6 +79,7 @@
/* #define HAL_LPTIM_MODULE_ENABLED */ /* #define HAL_LPTIM_MODULE_ENABLED */
/* #define HAL_EXTI_MODULE_ENABLED */ /* #define HAL_EXTI_MODULE_ENABLED */
#define HAL_GPIO_MODULE_ENABLED #define HAL_GPIO_MODULE_ENABLED
#define HAL_EXTI_MODULE_ENABLED
#define HAL_DMA_MODULE_ENABLED #define HAL_DMA_MODULE_ENABLED
#define HAL_RCC_MODULE_ENABLED #define HAL_RCC_MODULE_ENABLED
#define HAL_FLASH_MODULE_ENABLED #define HAL_FLASH_MODULE_ENABLED
@ -221,12 +209,12 @@
#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */ #define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */
/* Section 4: Extended PHY Registers */ /* Section 4: Extended PHY Registers */
#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */ #define PHY_SR ((uint16_t)0x1FU) /*!< PHY status register Offset */
#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */ #define PHY_SPEED_STATUS ((uint16_t)0x0004U) /*!< PHY Speed mask */
#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */ #define PHY_DUPLEX_STATUS ((uint16_t)0x0010U) /*!< PHY Duplex mask */
#define PHY_ISFR ((uint16_t)0x000BU) /*!< PHY Interrupt Source Flag register Offset */ #define PHY_ISFR ((uint16_t)0x001DU) /*!< PHY Interrupt Source Flag register Offset */
#define PHY_ISFR_INT4 ((uint16_t)0x000BU) /*!< PHY Link down inturrupt */ #define PHY_ISFR_INT4 ((uint16_t)0x000BU) /*!< PHY Link down inturrupt */
/* ################## SPI peripheral configuration ########################## */ /* ################## SPI peripheral configuration ########################## */

View File

@ -5,29 +5,34 @@ ADC1.NbrOfConversionFlag=1
ADC1.Rank-0\#ChannelRegularConversion=1 ADC1.Rank-0\#ChannelRegularConversion=1
ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_3CYCLES ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_3CYCLES
ADC1.master=1 ADC1.master=1
CAN1.CalculateTimeQuantum=355.55555555555554
CAN1.IPParameters=CalculateTimeQuantum
ETH.IPParameters=MediaInterface ETH.IPParameters=MediaInterface
ETH.MediaInterface=ETH_MEDIA_INTERFACE_RMII ETH.MediaInterface=ETH_MEDIA_INTERFACE_RMII
File.Version=6 File.Version=6
KeepUserPlacement=false KeepUserPlacement=false
Mcu.Family=STM32F4 Mcu.Family=STM32F4
Mcu.IP0=ADC1 Mcu.IP0=ADC1
Mcu.IP1=ETH Mcu.IP1=CAN1
Mcu.IP10=SPI5 Mcu.IP10=SPI2
Mcu.IP11=SYS Mcu.IP11=SPI5
Mcu.IP12=TIM2 Mcu.IP12=SYS
Mcu.IP13=TIM11 Mcu.IP13=TIM2
Mcu.IP14=TIM13 Mcu.IP14=TIM11
Mcu.IP15=TIM14 Mcu.IP15=TIM13
Mcu.IP16=USART1 Mcu.IP16=TIM14
Mcu.IP2=FMC Mcu.IP17=USART1
Mcu.IP3=IWDG Mcu.IP18=USART2
Mcu.IP4=NVIC Mcu.IP19=USART3
Mcu.IP5=RCC Mcu.IP2=ETH
Mcu.IP6=RTC Mcu.IP3=FMC
Mcu.IP7=SDIO Mcu.IP4=IWDG
Mcu.IP8=SPI1 Mcu.IP5=NVIC
Mcu.IP9=SPI2 Mcu.IP6=RCC
Mcu.IPNb=17 Mcu.IP7=RTC
Mcu.IP8=SDIO
Mcu.IP9=SPI1
Mcu.IPNb=20
Mcu.Name=STM32F429I(E-G)Tx Mcu.Name=STM32F429I(E-G)Tx
Mcu.Package=LQFP176 Mcu.Package=LQFP176
Mcu.Pin0=PC14/OSC32_IN Mcu.Pin0=PC14/OSC32_IN
@ -68,69 +73,80 @@ Mcu.Pin4=PF2
Mcu.Pin40=PE15 Mcu.Pin40=PE15
Mcu.Pin41=PB10 Mcu.Pin41=PB10
Mcu.Pin42=PB11 Mcu.Pin42=PB11
Mcu.Pin43=PB14 Mcu.Pin43=PB13
Mcu.Pin44=PB15 Mcu.Pin44=PB14
Mcu.Pin45=PD8 Mcu.Pin45=PB15
Mcu.Pin46=PD9 Mcu.Pin46=PD8
Mcu.Pin47=PD10 Mcu.Pin47=PD9
Mcu.Pin48=PD14 Mcu.Pin48=PD10
Mcu.Pin49=PD15 Mcu.Pin49=PD14
Mcu.Pin5=PF3 Mcu.Pin5=PF3
Mcu.Pin50=PG2 Mcu.Pin50=PD15
Mcu.Pin51=PG4 Mcu.Pin51=PG2
Mcu.Pin52=PG5 Mcu.Pin52=PG4
Mcu.Pin53=PG8 Mcu.Pin53=PG5
Mcu.Pin54=PC8 Mcu.Pin54=PG8
Mcu.Pin55=PC9 Mcu.Pin55=PC8
Mcu.Pin56=PA9 Mcu.Pin56=PC9
Mcu.Pin57=PA10 Mcu.Pin57=PA9
Mcu.Pin58=PA13 Mcu.Pin58=PA10
Mcu.Pin59=PA14 Mcu.Pin59=PA11
Mcu.Pin6=PF4 Mcu.Pin6=PF4
Mcu.Pin60=PC10 Mcu.Pin60=PA12
Mcu.Pin61=PC11 Mcu.Pin61=PA13
Mcu.Pin62=PC12 Mcu.Pin62=PA14
Mcu.Pin63=PD0 Mcu.Pin63=PC10
Mcu.Pin64=PD1 Mcu.Pin64=PC11
Mcu.Pin65=PD2 Mcu.Pin65=PC12
Mcu.Pin66=PG13 Mcu.Pin66=PD0
Mcu.Pin67=PG14 Mcu.Pin67=PD1
Mcu.Pin68=PG15 Mcu.Pin68=PD2
Mcu.Pin69=PB3 Mcu.Pin69=PD5
Mcu.Pin7=PF5 Mcu.Pin7=PF5
Mcu.Pin70=PB5 Mcu.Pin70=PD6
Mcu.Pin71=PE0 Mcu.Pin71=PG11
Mcu.Pin72=PE1 Mcu.Pin72=PG13
Mcu.Pin73=VP_IWDG_VS_IWDG Mcu.Pin73=PG14
Mcu.Pin74=VP_RTC_VS_RTC_Activate Mcu.Pin74=PG15
Mcu.Pin75=VP_SYS_VS_Systick Mcu.Pin75=PB3
Mcu.Pin76=VP_TIM2_VS_ClockSourceINT Mcu.Pin76=PB5
Mcu.Pin77=VP_TIM11_VS_ClockSourceINT Mcu.Pin77=PE0
Mcu.Pin78=VP_TIM13_VS_ClockSourceINT Mcu.Pin78=PE1
Mcu.Pin79=VP_TIM14_VS_ClockSourceINT Mcu.Pin79=VP_IWDG_VS_IWDG
Mcu.Pin8=PF7 Mcu.Pin8=PF7
Mcu.Pin80=VP_RTC_VS_RTC_Activate
Mcu.Pin81=VP_SYS_VS_Systick
Mcu.Pin82=VP_TIM2_VS_ClockSourceINT
Mcu.Pin83=VP_TIM11_VS_ClockSourceINT
Mcu.Pin84=VP_TIM13_VS_ClockSourceINT
Mcu.Pin85=VP_TIM14_VS_ClockSourceINT
Mcu.Pin9=PF8 Mcu.Pin9=PF8
Mcu.PinsNb=80 Mcu.PinsNb=86
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F429IGTx Mcu.UserName=STM32F429IGTx
MxCube.Version=5.0.0 MxCube.Version=5.3.0
MxDb.Version=DB.5.0.0 MxDb.Version=DB.5.0.30
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.USART1_IRQn=true\:0\:0\:true\:false\:true\:true NVIC.USART1_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PA1.Mode=RMII PA1.Mode=RMII
PA1.Signal=ETH_REF_CLK PA1.Signal=ETH_REF_CLK
PA10.Mode=Asynchronous PA10.Mode=Asynchronous
PA10.Signal=USART1_RX PA10.Signal=USART1_RX
PA11.Locked=true
PA11.Mode=Master
PA11.Signal=CAN1_RX
PA12.Mode=Master
PA12.Signal=CAN1_TX
PA13.Mode=Serial_Wire PA13.Mode=Serial_Wire
PA13.Signal=SYS_JTMS-SWDIO PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=Serial_Wire PA14.Mode=Serial_Wire
@ -146,10 +162,12 @@ PA7.Mode=RMII
PA7.Signal=ETH_CRS_DV PA7.Signal=ETH_CRS_DV
PA9.Mode=Asynchronous PA9.Mode=Asynchronous
PA9.Signal=USART1_TX PA9.Signal=USART1_TX
PB10.Mode=Full_Duplex_Master PB10.Mode=Asynchronous
PB10.Signal=SPI2_SCK PB10.Signal=USART3_TX
PB11.Mode=RMII PB11.Mode=Asynchronous
PB11.Signal=ETH_TX_EN PB11.Signal=USART3_RX
PB13.Mode=Full_Duplex_Master
PB13.Signal=SPI2_SCK
PB14.Mode=Full_Duplex_Master PB14.Mode=Full_Duplex_Master
PB14.Signal=SPI2_MISO PB14.Signal=SPI2_MISO
PB15.Mode=Full_Duplex_Master PB15.Mode=Full_Duplex_Master
@ -190,7 +208,7 @@ PCC.PartNumber=STM32F429IGTx
PCC.Seq0=0 PCC.Seq0=0
PCC.Series=STM32F4 PCC.Series=STM32F4
PCC.Temperature=25 PCC.Temperature=25
PCC.Vdd=null PCC.Vdd=3.3
PD0.Signal=FMC_D2_DA2 PD0.Signal=FMC_D2_DA2
PD1.Signal=FMC_D3_DA3 PD1.Signal=FMC_D3_DA3
PD10.Signal=FMC_D15_DA15 PD10.Signal=FMC_D15_DA15
@ -198,6 +216,10 @@ PD14.Signal=FMC_D0_DA0
PD15.Signal=FMC_D1_DA1 PD15.Signal=FMC_D1_DA1
PD2.Mode=SD_4_bits_Wide_bus PD2.Mode=SD_4_bits_Wide_bus
PD2.Signal=SDIO_CMD PD2.Signal=SDIO_CMD
PD5.Mode=Asynchronous
PD5.Signal=USART2_TX
PD6.Mode=Asynchronous
PD6.Signal=USART2_RX
PD8.Signal=FMC_D13_DA13 PD8.Signal=FMC_D13_DA13
PD9.Signal=FMC_D14_DA14 PD9.Signal=FMC_D14_DA14
PE0.Signal=FMC_NBL0 PE0.Signal=FMC_NBL0
@ -230,6 +252,8 @@ PF9.Mode=Full_Duplex_Master
PF9.Signal=SPI5_MOSI PF9.Signal=SPI5_MOSI
PG0.Signal=FMC_A10 PG0.Signal=FMC_A10
PG1.Signal=FMC_A11 PG1.Signal=FMC_A11
PG11.Mode=RMII
PG11.Signal=ETH_TX_EN
PG13.Locked=true PG13.Locked=true
PG13.Mode=RMII PG13.Mode=RMII
PG13.Signal=ETH_TXD0 PG13.Signal=ETH_TXD0
@ -255,12 +279,12 @@ ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=true ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32F429IGTx ProjectManager.DeviceId=STM32F429IGTx
ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.22.0 ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.24.1
ProjectManager.FreePins=false ProjectManager.FreePins=false
ProjectManager.HalAssertFull=false ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x200 ProjectManager.HeapSize=0x200
ProjectManager.KeepUserCode=true ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=false ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=0 ProjectManager.LibraryCopy=0
ProjectManager.MainLocation=Src ProjectManager.MainLocation=Src
ProjectManager.NoMain=false ProjectManager.NoMain=false
@ -412,6 +436,10 @@ TIM2.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
TIM2.IPParameters=Channel-PWM Generation4 CH4 TIM2.IPParameters=Channel-PWM Generation4 CH4
USART1.IPParameters=VirtualMode USART1.IPParameters=VirtualMode
USART1.VirtualMode=VM_ASYNC USART1.VirtualMode=VM_ASYNC
USART2.IPParameters=VirtualMode
USART2.VirtualMode=VM_ASYNC
USART3.IPParameters=VirtualMode
USART3.VirtualMode=VM_ASYNC
VP_IWDG_VS_IWDG.Mode=IWDG_Activate VP_IWDG_VS_IWDG.Mode=IWDG_Activate
VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG
VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled

View File

@ -64,6 +64,8 @@
/* Private variables ---------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc1; ADC_HandleTypeDef hadc1;
CAN_HandleTypeDef hcan1;
ETH_HandleTypeDef heth; ETH_HandleTypeDef heth;
IWDG_HandleTypeDef hiwdg; IWDG_HandleTypeDef hiwdg;
@ -82,6 +84,8 @@ TIM_HandleTypeDef htim13;
TIM_HandleTypeDef htim14; TIM_HandleTypeDef htim14;
UART_HandleTypeDef huart1; UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;
UART_HandleTypeDef huart3;
SDRAM_HandleTypeDef hsdram1; SDRAM_HandleTypeDef hsdram1;
@ -107,6 +111,9 @@ static void MX_TIM2_Init(void);
static void MX_SPI1_Init(void); static void MX_SPI1_Init(void);
static void MX_SPI2_Init(void); static void MX_SPI2_Init(void);
static void MX_SPI5_Init(void); static void MX_SPI5_Init(void);
static void MX_CAN1_Init(void);
static void MX_USART2_UART_Init(void);
static void MX_USART3_UART_Init(void);
/* USER CODE BEGIN PFP */ /* USER CODE BEGIN PFP */
/* Private function prototypes -----------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/
@ -126,6 +133,7 @@ int main(void)
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */
/* USER CODE END 1 */ /* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/ /* MCU Configuration--------------------------------------------------------*/
@ -159,6 +167,9 @@ int main(void)
MX_SPI1_Init(); MX_SPI1_Init();
MX_SPI2_Init(); MX_SPI2_Init();
MX_SPI5_Init(); MX_SPI5_Init();
MX_CAN1_Init();
MX_USART2_UART_Init();
MX_USART3_UART_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
/* USER CODE END 2 */ /* USER CODE END 2 */
@ -186,11 +197,11 @@ void SystemClock_Config(void)
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/**Configure the main internal regulator output voltage /** Configure the main internal regulator output voltage
*/ */
__HAL_RCC_PWR_CLK_ENABLE(); __HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/**Initializes the CPU, AHB and APB busses clocks /** Initializes the CPU, AHB and APB busses clocks
*/ */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE
|RCC_OSCILLATORTYPE_LSE; |RCC_OSCILLATORTYPE_LSE;
@ -207,13 +218,13 @@ void SystemClock_Config(void)
{ {
Error_Handler(); Error_Handler();
} }
/**Activate the Over-Drive mode /** Activate the Over-Drive mode
*/ */
if (HAL_PWREx_EnableOverDrive() != HAL_OK) if (HAL_PWREx_EnableOverDrive() != HAL_OK)
{ {
Error_Handler(); Error_Handler();
} }
/**Initializes the CPU, AHB and APB busses clocks /** Initializes the CPU, AHB and APB busses clocks
*/ */
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
@ -251,7 +262,7 @@ static void MX_ADC1_Init(void)
/* USER CODE BEGIN ADC1_Init 1 */ /* USER CODE BEGIN ADC1_Init 1 */
/* USER CODE END ADC1_Init 1 */ /* USER CODE END ADC1_Init 1 */
/**Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
*/ */
hadc1.Instance = ADC1; hadc1.Instance = ADC1;
hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
@ -269,7 +280,7 @@ static void MX_ADC1_Init(void)
{ {
Error_Handler(); Error_Handler();
} }
/**Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time. /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
*/ */
sConfig.Channel = ADC_CHANNEL_5; sConfig.Channel = ADC_CHANNEL_5;
sConfig.Rank = 1; sConfig.Rank = 1;
@ -284,6 +295,43 @@ static void MX_ADC1_Init(void)
} }
/**
* @brief CAN1 Initialization Function
* @param None
* @retval None
*/
static void MX_CAN1_Init(void)
{
/* USER CODE BEGIN CAN1_Init 0 */
/* USER CODE END CAN1_Init 0 */
/* USER CODE BEGIN CAN1_Init 1 */
/* USER CODE END CAN1_Init 1 */
hcan1.Instance = CAN1;
hcan1.Init.Prescaler = 16;
hcan1.Init.Mode = CAN_MODE_NORMAL;
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan1.Init.TimeSeg1 = CAN_BS1_1TQ;
hcan1.Init.TimeSeg2 = CAN_BS2_1TQ;
hcan1.Init.TimeTriggeredMode = DISABLE;
hcan1.Init.AutoBusOff = DISABLE;
hcan1.Init.AutoWakeUp = DISABLE;
hcan1.Init.AutoRetransmission = DISABLE;
hcan1.Init.ReceiveFifoLocked = DISABLE;
hcan1.Init.TransmitFifoPriority = DISABLE;
if (HAL_CAN_Init(&hcan1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN CAN1_Init 2 */
/* USER CODE END CAN1_Init 2 */
}
/** /**
* @brief ETH Initialization Function * @brief ETH Initialization Function
* @param None * @param None
@ -372,7 +420,7 @@ static void MX_RTC_Init(void)
/* USER CODE BEGIN RTC_Init 1 */ /* USER CODE BEGIN RTC_Init 1 */
/* USER CODE END RTC_Init 1 */ /* USER CODE END RTC_Init 1 */
/**Initialize RTC Only /** Initialize RTC Only
*/ */
hrtc.Instance = RTC; hrtc.Instance = RTC;
hrtc.Init.HourFormat = RTC_HOURFORMAT_24; hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
@ -565,6 +613,7 @@ static void MX_TIM2_Init(void)
htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 0; htim2.Init.Period = 0;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim2) != HAL_OK) if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
@ -619,6 +668,7 @@ static void MX_TIM11_Init(void)
htim11.Init.CounterMode = TIM_COUNTERMODE_UP; htim11.Init.CounterMode = TIM_COUNTERMODE_UP;
htim11.Init.Period = 0; htim11.Init.Period = 0;
htim11.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim11.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim11.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim11) != HAL_OK) if (HAL_TIM_Base_Init(&htim11) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
@ -649,6 +699,7 @@ static void MX_TIM13_Init(void)
htim13.Init.CounterMode = TIM_COUNTERMODE_UP; htim13.Init.CounterMode = TIM_COUNTERMODE_UP;
htim13.Init.Period = 0; htim13.Init.Period = 0;
htim13.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim13.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim13.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim13) != HAL_OK) if (HAL_TIM_Base_Init(&htim13) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
@ -679,6 +730,7 @@ static void MX_TIM14_Init(void)
htim14.Init.CounterMode = TIM_COUNTERMODE_UP; htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
htim14.Init.Period = 0; htim14.Init.Period = 0;
htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim14) != HAL_OK) if (HAL_TIM_Base_Init(&htim14) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
@ -722,10 +774,85 @@ static void MX_USART1_UART_Init(void)
} }
/**
* @brief USART2 Initialization Function
* @param None
* @retval None
*/
static void MX_USART2_UART_Init(void)
{
/* USER CODE BEGIN USART2_Init 0 */
/* USER CODE END USART2_Init 0 */
/* USER CODE BEGIN USART2_Init 1 */
/* USER CODE END USART2_Init 1 */
huart2.Instance = USART2;
huart2.Init.BaudRate = 115200;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart2) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART2_Init 2 */
/* USER CODE END USART2_Init 2 */
}
/**
* @brief USART3 Initialization Function
* @param None
* @retval None
*/
static void MX_USART3_UART_Init(void)
{
/* USER CODE BEGIN USART3_Init 0 */
/* USER CODE END USART3_Init 0 */
/* USER CODE BEGIN USART3_Init 1 */
/* USER CODE END USART3_Init 1 */
huart3.Instance = USART3;
huart3.Init.BaudRate = 115200;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.Mode = UART_MODE_TX_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART3_Init 2 */
/* USER CODE END USART3_Init 2 */
}
/* FMC initialization function */ /* FMC initialization function */
static void MX_FMC_Init(void) static void MX_FMC_Init(void)
{ {
FMC_SDRAM_TimingTypeDef SdramTiming;
/* USER CODE BEGIN FMC_Init 0 */
/* USER CODE END FMC_Init 0 */
FMC_SDRAM_TimingTypeDef SdramTiming = {0};
/* USER CODE BEGIN FMC_Init 1 */
/* USER CODE END FMC_Init 1 */
/** Perform the SDRAM1 memory initialization sequence /** Perform the SDRAM1 memory initialization sequence
*/ */
@ -755,6 +882,9 @@ static void MX_FMC_Init(void)
Error_Handler( ); Error_Handler( );
} }
/* USER CODE BEGIN FMC_Init 2 */
/* USER CODE END FMC_Init 2 */
} }
/** /**

View File

@ -107,7 +107,6 @@ void HAL_MspInit(void)
*/ */
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
{ {
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(hadc->Instance==ADC1) if(hadc->Instance==ADC1)
{ {
@ -139,10 +138,8 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
* @param hadc: ADC handle pointer * @param hadc: ADC handle pointer
* @retval None * @retval None
*/ */
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
{ {
if(hadc->Instance==ADC1) if(hadc->Instance==ADC1)
{ {
/* USER CODE BEGIN ADC1_MspDeInit 0 */ /* USER CODE BEGIN ADC1_MspDeInit 0 */
@ -163,6 +160,71 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
} }
/**
* @brief CAN MSP Initialization
* This function configures the hardware resources used in this example
* @param hcan: CAN handle pointer
* @retval None
*/
void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(hcan->Instance==CAN1)
{
/* USER CODE BEGIN CAN1_MspInit 0 */
/* USER CODE END CAN1_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_CAN1_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**CAN1 GPIO Configuration
PA11 ------> CAN1_RX
PA12 ------> CAN1_TX
*/
GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
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_CAN1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN CAN1_MspInit 1 */
/* USER CODE END CAN1_MspInit 1 */
}
}
/**
* @brief CAN MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param hcan: CAN handle pointer
* @retval None
*/
void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
{
if(hcan->Instance==CAN1)
{
/* USER CODE BEGIN CAN1_MspDeInit 0 */
/* USER CODE END CAN1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_CAN1_CLK_DISABLE();
/**CAN1 GPIO Configuration
PA11 ------> CAN1_RX
PA12 ------> CAN1_TX
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
/* USER CODE BEGIN CAN1_MspDeInit 1 */
/* USER CODE END CAN1_MspDeInit 1 */
}
}
/** /**
* @brief ETH MSP Initialization * @brief ETH MSP Initialization
* This function configures the hardware resources used in this example * This function configures the hardware resources used in this example
@ -171,7 +233,6 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
*/ */
void HAL_ETH_MspInit(ETH_HandleTypeDef* heth) void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
{ {
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(heth->Instance==ETH) if(heth->Instance==ETH)
{ {
@ -183,7 +244,6 @@ void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
__HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE(); __HAL_RCC_GPIOG_CLK_ENABLE();
/**ETH GPIO Configuration /**ETH GPIO Configuration
PC1 ------> ETH_MDC PC1 ------> ETH_MDC
@ -192,7 +252,7 @@ void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
PA7 ------> ETH_CRS_DV PA7 ------> ETH_CRS_DV
PC4 ------> ETH_RXD0 PC4 ------> ETH_RXD0
PC5 ------> ETH_RXD1 PC5 ------> ETH_RXD1
PB11 ------> ETH_TX_EN PG11 ------> ETH_TX_EN
PG13 ------> ETH_TXD0 PG13 ------> ETH_TXD0
PG14 ------> ETH_TXD1 PG14 ------> ETH_TXD1
*/ */
@ -210,14 +270,7 @@ void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
GPIO_InitStruct.Alternate = GPIO_AF11_ETH; GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_11; GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_13|GPIO_PIN_14;
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(GPIOB, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
@ -237,10 +290,8 @@ void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
* @param heth: ETH handle pointer * @param heth: ETH handle pointer
* @retval None * @retval None
*/ */
void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth) void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
{ {
if(heth->Instance==ETH) if(heth->Instance==ETH)
{ {
/* USER CODE BEGIN ETH_MspDeInit 0 */ /* USER CODE BEGIN ETH_MspDeInit 0 */
@ -256,7 +307,7 @@ void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
PA7 ------> ETH_CRS_DV PA7 ------> ETH_CRS_DV
PC4 ------> ETH_RXD0 PC4 ------> ETH_RXD0
PC5 ------> ETH_RXD1 PC5 ------> ETH_RXD1
PB11 ------> ETH_TX_EN PG11 ------> ETH_TX_EN
PG13 ------> ETH_TXD0 PG13 ------> ETH_TXD0
PG14 ------> ETH_TXD1 PG14 ------> ETH_TXD1
*/ */
@ -264,9 +315,7 @@ void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7); HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7);
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11); HAL_GPIO_DeInit(GPIOG, GPIO_PIN_11|GPIO_PIN_13|GPIO_PIN_14);
HAL_GPIO_DeInit(GPIOG, GPIO_PIN_13|GPIO_PIN_14);
/* USER CODE BEGIN ETH_MspDeInit 1 */ /* USER CODE BEGIN ETH_MspDeInit 1 */
@ -283,7 +332,6 @@ void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
*/ */
void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc) void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
{ {
if(hrtc->Instance==RTC) if(hrtc->Instance==RTC)
{ {
/* USER CODE BEGIN RTC_MspInit 0 */ /* USER CODE BEGIN RTC_MspInit 0 */
@ -304,10 +352,8 @@ void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
* @param hrtc: RTC handle pointer * @param hrtc: RTC handle pointer
* @retval None * @retval None
*/ */
void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc) void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
{ {
if(hrtc->Instance==RTC) if(hrtc->Instance==RTC)
{ {
/* USER CODE BEGIN RTC_MspDeInit 0 */ /* USER CODE BEGIN RTC_MspDeInit 0 */
@ -330,7 +376,6 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
*/ */
void HAL_SD_MspInit(SD_HandleTypeDef* hsd) void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
{ {
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(hsd->Instance==SDIO) if(hsd->Instance==SDIO)
{ {
@ -378,10 +423,8 @@ void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
* @param hsd: SD handle pointer * @param hsd: SD handle pointer
* @retval None * @retval None
*/ */
void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd) void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
{ {
if(hsd->Instance==SDIO) if(hsd->Instance==SDIO)
{ {
/* USER CODE BEGIN SDIO_MspDeInit 0 */ /* USER CODE BEGIN SDIO_MspDeInit 0 */
@ -418,7 +461,6 @@ void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
*/ */
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
{ {
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(hspi->Instance==SPI1) if(hspi->Instance==SPI1)
{ {
@ -463,11 +505,11 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
__HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE();
/**SPI2 GPIO Configuration /**SPI2 GPIO Configuration
PB10 ------> SPI2_SCK PB13 ------> SPI2_SCK
PB14 ------> SPI2_MISO PB14 ------> SPI2_MISO
PB15 ------> SPI2_MOSI PB15 ------> SPI2_MOSI
*/ */
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_14|GPIO_PIN_15; GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
@ -512,10 +554,8 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
* @param hspi: SPI handle pointer * @param hspi: SPI handle pointer
* @retval None * @retval None
*/ */
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
{ {
if(hspi->Instance==SPI1) if(hspi->Instance==SPI1)
{ {
/* USER CODE BEGIN SPI1_MspDeInit 0 */ /* USER CODE BEGIN SPI1_MspDeInit 0 */
@ -546,11 +586,11 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
__HAL_RCC_SPI2_CLK_DISABLE(); __HAL_RCC_SPI2_CLK_DISABLE();
/**SPI2 GPIO Configuration /**SPI2 GPIO Configuration
PB10 ------> SPI2_SCK PB13 ------> SPI2_SCK
PB14 ------> SPI2_MISO PB14 ------> SPI2_MISO
PB15 ------> SPI2_MOSI PB15 ------> SPI2_MOSI
*/ */
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_14|GPIO_PIN_15); HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
/* USER CODE BEGIN SPI2_MspDeInit 1 */ /* USER CODE BEGIN SPI2_MspDeInit 1 */
@ -586,7 +626,6 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
*/ */
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
{ {
if(htim_base->Instance==TIM2) if(htim_base->Instance==TIM2)
{ {
/* USER CODE BEGIN TIM2_MspInit 0 */ /* USER CODE BEGIN TIM2_MspInit 0 */
@ -636,7 +675,6 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
{ {
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(htim->Instance==TIM2) if(htim->Instance==TIM2)
{ {
@ -667,10 +705,8 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
* @param htim_base: TIM_Base handle pointer * @param htim_base: TIM_Base handle pointer
* @retval None * @retval None
*/ */
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
{ {
if(htim_base->Instance==TIM2) if(htim_base->Instance==TIM2)
{ {
/* USER CODE BEGIN TIM2_MspDeInit 0 */ /* USER CODE BEGIN TIM2_MspDeInit 0 */
@ -726,7 +762,6 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
*/ */
void HAL_UART_MspInit(UART_HandleTypeDef* huart) void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{ {
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(huart->Instance==USART1) if(huart->Instance==USART1)
{ {
@ -756,6 +791,54 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
/* USER CODE END USART1_MspInit 1 */ /* USER CODE END USART1_MspInit 1 */
} }
else if(huart->Instance==USART2)
{
/* USER CODE BEGIN USART2_MspInit 0 */
/* USER CODE END USART2_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_USART2_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/**USART2 GPIO Configuration
PD5 ------> USART2_TX
PD6 ------> USART2_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* USER CODE BEGIN USART2_MspInit 1 */
/* USER CODE END USART2_MspInit 1 */
}
else if(huart->Instance==USART3)
{
/* USER CODE BEGIN USART3_MspInit 0 */
/* USER CODE END USART3_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_USART3_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/**USART3 GPIO Configuration
PB10 ------> USART3_TX
PB11 ------> USART3_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN USART3_MspInit 1 */
/* USER CODE END USART3_MspInit 1 */
}
} }
@ -765,10 +848,8 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
* @param huart: UART handle pointer * @param huart: UART handle pointer
* @retval None * @retval None
*/ */
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
{ {
if(huart->Instance==USART1) if(huart->Instance==USART1)
{ {
/* USER CODE BEGIN USART1_MspDeInit 0 */ /* USER CODE BEGIN USART1_MspDeInit 0 */
@ -789,6 +870,42 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
/* USER CODE END USART1_MspDeInit 1 */ /* USER CODE END USART1_MspDeInit 1 */
} }
else if(huart->Instance==USART2)
{
/* USER CODE BEGIN USART2_MspDeInit 0 */
/* USER CODE END USART2_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART2_CLK_DISABLE();
/**USART2 GPIO Configuration
PD5 ------> USART2_TX
PD6 ------> USART2_RX
*/
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5|GPIO_PIN_6);
/* USER CODE BEGIN USART2_MspDeInit 1 */
/* USER CODE END USART2_MspDeInit 1 */
}
else if(huart->Instance==USART3)
{
/* USER CODE BEGIN USART3_MspDeInit 0 */
/* USER CODE END USART3_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART3_CLK_DISABLE();
/**USART3 GPIO Configuration
PB10 ------> USART3_TX
PB11 ------> USART3_RX
*/
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
/* USER CODE BEGIN USART3_MspDeInit 1 */
/* USER CODE END USART3_MspDeInit 1 */
}
} }
@ -798,7 +915,7 @@ static void HAL_FMC_MspInit(void){
/* USER CODE BEGIN FMC_MspInit 0 */ /* USER CODE BEGIN FMC_MspInit 0 */
/* USER CODE END FMC_MspInit 0 */ /* USER CODE END FMC_MspInit 0 */
GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitTypeDef GPIO_InitStruct ={0};
if (FMC_Initialized) { if (FMC_Initialized) {
return; return;
} }

View File

@ -15,7 +15,7 @@ menu "Onboard Peripheral Drivers"
config BSP_USING_COM2 config BSP_USING_COM2
bool "Enable COM2 (uart2 pin conflict with Ethernet and PWM)" bool "Enable COM2 (uart2 pin conflict with Ethernet and PWM)"
select BSP_USING_UART select BSP_USING_UART
select BSP_USING_UART2 select BSP_USING_UART2
default n default n
@ -106,6 +106,15 @@ menu "On-chip Peripheral Drivers"
config BSP_USING_ON_CHIP_FLASH config BSP_USING_ON_CHIP_FLASH
bool "Enable on-chip FLASH" bool "Enable on-chip FLASH"
default n default n
menuconfig BSP_USING_CAN
bool "Enable CAN"
default n
select RT_USING_CAN
if BSP_USING_CAN
config BSP_USING_CAN1
bool "Enable CAN1"
default n
endif
menuconfig BSP_USING_SPI menuconfig BSP_USING_SPI
bool "Enable SPI BUS" bool "Enable SPI BUS"