这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » STM32WBA55+蓝牙调试助手的使用

共1条 1/1 1 跳转至

STM32WBA55+蓝牙调试助手的使用

助工
2025-01-10 00:46:33     打赏

简介

在前几个章节中我们完成了,蓝牙台灯的基础任务相关,即使用ADC采集电池电量和使用PWM来控制灯的亮度。不过项目是属于独立的功能模块,在这个章节中我们将两个工程组合在一起。 同时演示蓝牙调试助手的使用。那么在下一个章节,我们将展示最终的成品效果。


我们可以直接在ADC的工程上修改。

1 - 首先配置定时器

/* TIM2 init function */
void MX_TIM2_Init(void)
{

/* USER CODE BEGIN TIM2_Init 0 */

/* USER CODE END TIM2_Init 0 */

TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};

/* USER CODE BEGIN TIM2_Init 1 */

/* USER CODE END TIM2_Init 1 */
htim2.Instance = TIM2;
htim2.Init.Prescaler = 80-1;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 9999;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 5000;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM2_Init 2 */

/* USER CODE END TIM2_Init 2 */
HAL_TIM_MspPostInit(&htim2);

}


2- 使能输出

__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 1000);  // 设置占空比
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4);           // 启动PWM输出


现象

104999fa93e7e96c9948d660303cf22.jpg


虽然上述的程序中ADC还是在主程序中运行的,但是由于时间较短,并没有影响到蓝牙协议的运行


蓝牙调试助手的使用


1- 在应用商店搜索ST ble toolbox并且下载

c6a74b03e915516b7167d604ba0ebfc.jpg


2- 烧录程序后打开软件搜索蓝牙并且连接。

599c8d800fc53f2509c273b5387bf1b.jpg


3-P2P-server 处通过蓝牙来控制板载LED闪烁。

33829a01b9c0169dbd7243976dd5f7e.jpg



4 - 代码分析

image.png

代码的控制部分在STM32WPAN的APP下的P2P_server_app.c 中,我们可以在这个地方定义不同的命令来控制PWM的占空比。




关键词: 蓝牙     stm32    

共1条 1/1 1 跳转至

回复

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