在以下页面可以下载到用于预测性维护、智能工业、IoT和远程监控应用的STEVAL-STWINKT1评估套件固件,也就是本次测评使用的评估套件。
https://www.st.com.cn/zh/embedded-software/stsw-stwinkt01.html
下载并解压开发套件,stsw-stwinkt01\STSW-STWINKT01_V2.2.0\Projects中包含不同的软件演示程序。
套件中使用到到的软件栈结构如下。

1、示例程序
开发套件中提供的BLE_SampleApp,实现初始化硬件、蓝牙软件栈,传感器数据管理等功能。系统在上电后的程序运行逻辑如下:
- 初始化硬件和时钟;
- 配置并复位传感器片选引脚;
- 初始化板卡:
- USB外设 (用于调试)
- LED1指示灯
- 环境传感器
- 初始化蓝牙低功耗软件栈
- 初始化蓝牙低功耗服务
- 初始化定时器
- 主循环:
- LED管理
- 低功耗蓝牙时间管理
- 环境传感器数据管理
上述流程在代码中表示为
int main(void)
{
uint32_t StartTime;
/* STM32L4xx HAL库初始化 */
HAL_Init();
HAL_PWREx_EnableVddIO2();
__HAL_RCC_PWR_CLK_ENABLE();
HAL_PWREx_EnableVddUSB();
/* 初始化硬件和时钟 */
SystemClock_Config();
BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI);
BSP_PB_PWR_Init();
BSP_LED_Init(LED_GREEN);
BSP_LED_Init(LED_ORANGE);
BSP_Enable_DCDC2();
BSP_BC_Init();
BSP_BC_BatMS_Init();
BSP_BC_CmdSend(BATMS_ON);
t_stwin = HAL_GetTick();
/*配置并复位传感器片选引脚,初始化板卡*/
InitTargetPlatform(TARGET_STWIN);
STLBLE_PRINTF("\t(HAL %ld.%ld.%ld_%ld)\r\n"
"\tCompiled %s %s"
#if defined (__IAR_SYSTEMS_ICC__)
" (IAR)\r\n"
#elif defined (__CC_ARM)
" (KEIL)\r\n"
#elif defined (__GNUC__)
" (STM32CubeIDE)\r\n"
#endif
"\tSend Every %4dmS Temperature/Humidity/Pressure\r\n",
HAL_GetHalVersion() >>24,
(HAL_GetHalVersion() >>16)&0xFF,
(HAL_GetHalVersion() >> 8)&0xFF,
HAL_GetHalVersion() &0xFF,
__DATE__,__TIME__,
uhCCR1_Val/10);
#ifdef ENABLE_USB_DEBUG_CONNECTION
STLBLE_PRINTF("Debug Connection Enabled\r\n");
#endif /* ENABLE_USB_DEBUG_CONNECTION */
#ifdef ENABLE_USB_DEBUG_NOTIFY_TRAMISSION
STLBLE_PRINTF("Debug Notify Trasmission Enabled\r\n");
#endif /* ENABLE_USB_DEBUG_NOTIFY_TRAMISSION */
HCI_TL_SPI_Reset();
/* 初始化蓝牙低功耗软件栈 */
Init_BlueNRG_Stack();
/* 初始化蓝牙低功耗服务 */
Init_BlueNRG_Custom_Services();
/* 初始化定时器 */
InitTimers();
StartTime = HAL_GetTick();
/* 主循环 */
while (1){
/* LED管理 */
if(!connected) {
if(!TargetBoardFeatures.LedStatus) {
if(HAL_GetTick()-StartTime > 1000) {
LedOnTargetPlatform();
TargetBoardFeatures.LedStatus =1;
StartTime = HAL_GetTick();
}
} else {
if(HAL_GetTick()-StartTime > 50) {
LedOffTargetPlatform();
TargetBoardFeatures.LedStatus =0;
StartTime = HAL_GetTick();
}
}
}
/* 低功耗蓝牙时间管理 */
hci_user_evt_proc();
/* 更新蓝牙广播设置,使设备可以被连接 */
if(set_connectable){
setConnectable();
set_connectable = FALSE;
}
/* 环境传感器数据管理 */
if(SendEnv) {
SendEnv=0;
SendEnvironmentalData();
}
/* Wait for Interrupt - Activate Low Power mode*/
/* Comment this macro if you need to debug the firmware */
__WFI();
}
}
将工程编译和烧录到开发板,即可运行示例程序。
2、利用ST BLE Sensor获取显示数据
ST提供ST BLESensor App应用程序用于获取STEVAL-STWINKT1的传感器数据。
https://www.st.com/en/embedded-software/stblesensor.html
在官网可以在下载到apk安装文件。

运行应用程序,连接开发板在控制界面能通过不同的方式查看板载环境传感器数据

选择Environmental选项卡,进入温度、湿度和气压传感器数据显示界面,查看相应的传感器数据。

使用Plot Data选项卡,则可以查看实时的传感器采样值。

3、总结
STEVAL-STWINKT1评估套件配合ST BLE Sensor App实现低功耗蓝牙应用的完整方案,为实际的开发验证提供参考,加速使用ST芯片开发的物联网嵌入式产品。 |