这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » STM32WBA55蓝牙助手控制小台灯综合应用

共2条 1/1 1 跳转至

STM32WBA55蓝牙助手控制小台灯综合应用

工程师
2025-01-12 18:02:53     打赏

使用STM32WBA55 蓝牙助手控制小灯


一、硬件

核心器件

STM32WBA55单片机:

集成了蓝牙低功耗BLE功能,支持多种通信协议,具有丰富的外设接口。

作为整个台灯系统的控制核心,负责处理来自手机或其他蓝牙设备的指令,并控制LED灯的开关、亮度调节等功能。

LED灯:

功能,提供照明功能。

连接方式,通过GPIO接口与STM32WBA55单片机连接,由单片机控制其开关和亮度。

MOS模块板:

功能,作为LED灯的驱动电路,提供稳定的电流输出,保护LED灯不受过流、过压等损害。

连接方式,通过杜邦线与STM32WBA55单片机和LED灯连接。

USB转接板:

功能,提供USB接口,用于给STM32WBA55单片机供电和进行程序下载。

连接方式,通过USB线连接电脑或电源适配器,以及通过杜邦线与STM32WBA55单片机连接。

杜邦线:

功能,作为连接各个器件的导线,实现电路的连接。



二、软件部分

主要是以KEIL开发平台。


蓝牙 UART 初始化函数

uint32_t MX_APPE_Init(void *p_param)
{
  APP_DEBUG_SIGNAL_SET(APP_APPE_INIT);

  UNUSED(p_param);

  /* System initialization */
  System_Init();

  /* Configure the system Power Mode */
  SystemPower_Config();

#if (USE_TEMPERATURE_BASED_RADIO_CALIBRATION == 1)
  /* Initialize the Temperature measurement */
  TEMPMEAS_Init ();
#endif /* (USE_TEMPERATURE_BASED_RADIO_CALIBRATION == 1) */

  /* Initialize the Advance Memory Manager module */
  APPE_AMM_Init();

  /* Initialize the Random Number Generator module */
  APPE_RNG_Init();

  /* Initialize the Flash Manager module */
  APPE_FLASH_MANAGER_Init();

  /* Disable flash before any use - RFTS */
  FD_SetStatus (FD_FLASHACCESS_RFTS, LL_FLASH_DISABLE);
  /* Enable RFTS Bypass for flash operation - Since LL has not started yet */
  FD_SetStatus (FD_FLASHACCESS_RFTS_BYPASS, LL_FLASH_ENABLE);
  /* Enable flash system flag */
  FD_SetStatus (FD_FLASHACCESS_SYSTEM, LL_FLASH_ENABLE);

  /* USER CODE BEGIN APPE_Init_1 */
#if (CFG_LED_SUPPORTED == 1)  
  APP_BSP_LedInit();
#endif /* (CFG_LED_SUPPORTED == 1) */
#if (CFG_BUTTON_SUPPORTED == 1)
  APP_BSP_ButtonInit();
#endif /* (CFG_BUTTON_SUPPORTED == 1) */

  /* USER CODE END APPE_Init_1 */

  /* Initialize the Ble Public Key Accelerator module */
  APPE_BPKA_Init();

  /* Initialize the Simple Non Volatile Memory Arbiter */
  if( SNVMA_Init((uint32_t *)CFG_SNVMA_START_ADDRESS) != SNVMA_ERROR_OK )
  {
    Error_Handler();
  }

  APP_BLE_Init();

  /* Disable RFTS Bypass for flash operation - Since LL has not started yet */
  FD_SetStatus (FD_FLASHACCESS_RFTS_BYPASS, LL_FLASH_DISABLE);

  /* USER CODE BEGIN APPE_Init_2 */

  /* USER CODE END APPE_Init_2 */

  APP_DEBUG_SIGNAL_RESET(APP_APPE_INIT);

  return WPAN_SUCCESS;
}


小灯控制相关的 GPIO 初始化函数

void APPE_Button3Action(void)  
{  
  if (bleAppContext.Device_Connection_Status != APP_BLE_CONNECTED_SERVER)  
  {  
        LED.Mode_Dis++;  
        LED.Mode_Dis %=5;  
  }  
  else  
  {  
    APP_BLE_Procedure_Gap_Peripheral(PROC_GAP_PERIPH_CONN_PARAM_UPDATE);  
  }  
  
  return;  
}


、BLE配置与实际点亮状态,输出操作界面

image.png


点灯状态

8102105cdd8706d23312b8b9c497fbe.jpg

软件操作界面:

55cff87338c8e5d1655869daef9e468.jpg
















院士
2025-01-12 18:19:58     打赏
2楼

谢谢楼主图文并茂的分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]