Browse Source

[bsp/stm32l496zg] 添加uart2 , 添加btstack yml文件

Supper Thomas 1 month ago
parent
commit
c97c9c6c57

+ 17 - 0
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: 

+ 29 - 12
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

+ 58 - 0
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 */
+  }
 
 }