diff --git a/bsp/stm32/stm32l496-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l496-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index f140eaecb6..98c22f549d 100644 --- a/bsp/stm32/stm32l496-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32l496-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -78,6 +78,23 @@ pkg.peripheral.sample: - CONFIG_PERIPHERAL_SAMPLES_USING_SERIAL_DMA=y - CONFIG_PERIPHERAL_SAMPLES_USING_SPI=y - CONFIG_PERIPHERAL_SAMPLES_USING_CAN=y +pkg.iot.btstack: + kconfig: + - CONFIG_RT_USING_DEVICE_OPS=y + - CONFIG_PKG_USING_BTSTACK=y + - CONFIG_RT_SERIAL_RB_BUFSZ=256 + - CONFIG_ENABLE_LOG_INFO=y + - CONFIG_ENABLE_LOG_DEBUG=y + - CONFIG_PKG_BTSTACK_SAMPLE_LE_COUNTER=y + - CONFIG_PKG_USING_BTSTACK_LATEST_VERSION=y + - CONFIG_BSP_USING_UART1=y + - CONFIG_BSP_USING_UART2=y + - CONFIG_BSP_UART2_RX_USING_DMA=y + - CONFIG_BSP_LPUART1_RX_USING_DMA=y + - CONFIG_BSP_USING_ON_CHIP_FLASH=y + - CONFIG_BSP_USING_ON_CHIP_FLASH_FATFS=y + - CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=2048 + # ------ component CI ------ component.rtlink: kconfig: diff --git a/bsp/stm32/stm32l496-st-nucleo/board/CubeMX_Config/STM32L496ZG.ioc b/bsp/stm32/stm32l496-st-nucleo/board/CubeMX_Config/STM32L496ZG.ioc index 54c05d45aa..d7ac340a3f 100644 --- a/bsp/stm32/stm32l496-st-nucleo/board/CubeMX_Config/STM32L496ZG.ioc +++ b/bsp/stm32/stm32l496-st-nucleo/board/CubeMX_Config/STM32L496ZG.ioc @@ -31,7 +31,8 @@ Mcu.IP11=SPI1 Mcu.IP12=SYS Mcu.IP13=TIM2 Mcu.IP14=TIM4 -Mcu.IP15=USB_OTG_FS +Mcu.IP15=USART2 +Mcu.IP16=USB_OTG_FS Mcu.IP2=DAC1 Mcu.IP3=I2C1 Mcu.IP4=IWDG @@ -40,7 +41,7 @@ Mcu.IP6=NVIC Mcu.IP7=QUADSPI Mcu.IP8=RCC Mcu.IP9=RTC -Mcu.IPNb=16 +Mcu.IPNb=17 Mcu.Name=STM32L496Z(E-G)Tx Mcu.Package=LQFP144 Mcu.Pin0=PE4 @@ -74,21 +75,25 @@ Mcu.Pin33=PA13 (JTMS/SWDIO) Mcu.Pin34=PA14 (JTCK/SWCLK) Mcu.Pin35=PD0 Mcu.Pin36=PD1 -Mcu.Pin37=PG13 -Mcu.Pin38=PG14 -Mcu.Pin39=PB3 (JTDO/TRACESWO) +Mcu.Pin37=PD4 +Mcu.Pin38=PD5 +Mcu.Pin39=PD6 Mcu.Pin4=PC14-OSC32_IN (PC14) -Mcu.Pin40=PB7 -Mcu.Pin41=VP_IWDG_VS_IWDG -Mcu.Pin42=VP_RTC_VS_RTC_Activate -Mcu.Pin43=VP_SAI1_VP_$IpInstance_SAIA_SAI_BASIC -Mcu.Pin44=VP_SYS_VS_tim1 +Mcu.Pin40=PD7 +Mcu.Pin41=PG13 +Mcu.Pin42=PG14 +Mcu.Pin43=PB3 (JTDO/TRACESWO) +Mcu.Pin44=PB7 +Mcu.Pin45=VP_IWDG_VS_IWDG +Mcu.Pin46=VP_RTC_VS_RTC_Activate +Mcu.Pin47=VP_SAI1_VP_$IpInstance_SAIA_SAI_BASIC +Mcu.Pin48=VP_SYS_VS_tim1 Mcu.Pin5=PC15-OSC32_OUT (PC15) Mcu.Pin6=PF8 Mcu.Pin7=PF9 Mcu.Pin8=PF10 Mcu.Pin9=PH1-OSC_OUT (PH1) -Mcu.PinsNb=45 +Mcu.PinsNb=49 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32L496ZGTx @@ -108,6 +113,7 @@ NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:false NVIC.TIM1_UP_TIM16_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true NVIC.TimeBase=TIM1_UP_TIM16_IRQn NVIC.TimeBaseIP=TIM1 +NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false\:false PA1.Mode=Full_Duplex_Master PA1.Signal=SPI1_SCK @@ -185,6 +191,15 @@ PD12.Signal=S_TIM4_CH1 PD13.Signal=S_TIM4_CH2 PD14.Signal=S_TIM4_CH3 PD15.Signal=S_TIM4_CH4 +PD4.Mode=RTS_Only +PD4.Signal=USART2_RTS +PD5.Mode=Asynchronous +PD5.Signal=USART2_TX +PD6.Locked=true +PD6.Mode=Asynchronous +PD6.Signal=USART2_RX +PD7.Locked=true +PD7.Signal=GPIO_Output PE11.Mode=Single Bank 1 2IOs PE11.Signal=QUADSPI_BK1_NCS PE4.Mode=SAI_A_Master @@ -254,7 +269,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,4-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,5-MX_TIM2_Init-TIM2-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_CAN1_Init-CAN1-false-HAL-true,8-MX_ADC1_Init-ADC1-false-HAL-true,9-MX_DAC1_Init-DAC1-false-HAL-true,10-MX_I2C1_Init-I2C1-false-HAL-true,11-MX_IWDG_Init-IWDG-false-HAL-true,12-MX_QUADSPI_Init-QUADSPI-false-HAL-true,13-MX_RTC_Init-RTC-false-HAL-true,14-MX_SAI1_Init-SAI1-false-HAL-true,15-MX_SPI1_Init-SPI1-false-HAL-true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,4-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,5-MX_TIM2_Init-TIM2-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_CAN1_Init-CAN1-false-HAL-true,8-MX_ADC1_Init-ADC1-false-HAL-true,9-MX_DAC1_Init-DAC1-false-HAL-true,10-MX_I2C1_Init-I2C1-false-HAL-true,11-MX_IWDG_Init-IWDG-false-HAL-true,12-MX_QUADSPI_Init-QUADSPI-false-HAL-true,13-MX_RTC_Init-RTC-false-HAL-true,14-MX_SAI1_Init-SAI1-false-HAL-true,15-MX_SPI1_Init-SPI1-false-HAL-true,16-MX_USART2_UART_Init-USART2-false-HAL-true RCC.48MHZClocksFreq_Value=24000000 RCC.ADC12outputFreq_Value=72000000 RCC.ADC34outputFreq_Value=72000000 @@ -395,6 +410,8 @@ TIM4.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 TIM4.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3 TIM4.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4 TIM4.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4 +USART2.IPParameters=VirtualMode-Asynchronous +USART2.VirtualMode-Asynchronous=VM_ASYNC USB_OTG_FS.IPParameters=VirtualMode USB_OTG_FS.VirtualMode=Device_Only VP_IWDG_VS_IWDG.Mode=IWDG_Activate diff --git a/bsp/stm32/stm32l496-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_hal_msp.c b/bsp/stm32/stm32l496-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_hal_msp.c index 55cfb26e35..7ad06b7d43 100644 --- a/bsp/stm32/stm32l496-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_hal_msp.c +++ b/bsp/stm32/stm32l496-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_hal_msp.c @@ -395,7 +395,44 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart) /* USER CODE BEGIN LPUART1_MspInit 1 */ /* USER CODE END LPUART1_MspInit 1 */ + } + else if(huart->Instance==USART2) + { + /* USER CODE BEGIN USART2_MspInit 0 */ + /* USER CODE END USART2_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2; + PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* Peripheral clock enable */ + __HAL_RCC_USART2_CLK_ENABLE(); + + __HAL_RCC_GPIOD_CLK_ENABLE(); + /**USART2 GPIO Configuration + PD4 ------> USART2_RTS + PD5 ------> USART2_TX + PD6 ------> USART2_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART2; + HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + + /* USART2 interrupt Init */ + HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(USART2_IRQn); + /* USER CODE BEGIN USART2_MspInit 1 */ + + /* USER CODE END USART2_MspInit 1 */ } } @@ -426,6 +463,27 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) /* USER CODE END LPUART1_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 + PD4 ------> USART2_RTS + PD5 ------> USART2_TX + PD6 ------> USART2_RX + */ + HAL_GPIO_DeInit(GPIOD, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6); + + /* USART2 interrupt DeInit */ + HAL_NVIC_DisableIRQ(USART2_IRQn); + /* USER CODE BEGIN USART2_MspDeInit 1 */ + + /* USER CODE END USART2_MspDeInit 1 */ + } }