使用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配置与实际点亮状态,输出操作界面

点灯状态

软件操作界面:

我要赚赏金
