这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【蓝牙模组开发板WS8623-DB-V1.0】3、二次开发之点灯

共7条 1/1 1 跳转至

【蓝牙模组开发板WS8623-DB-V1.0】3、二次开发之点灯

工程师
2025-05-28 08:21:08     打赏

WS8623-DB-V1.0的主控是STM32WB05KZVx。

所以可以使用STM32几件套(STM32CubeMX,STM32CudeIDE,STM32CubeProgrammer)做二次开发。

本文通过二次开发实现板载2个KEY button和BLE指令二种方式点灯。

1、引脚使用情况

1.png

2、RCC

3、时钟树

4、LED和key

5、中断

6、RADIO

7、RADIO_TIMER

8、USART1

9、PKA

10、STM32_BLE

广播

1个服务

配置平台USART支持


11、USART1 printf重定向

/* USER CODE BEGIN PFP */
#if defined(__ICCARM__)
__ATTRIBUTES size_t __write(int, const unsigned char *, size_t);
#endif /* __ICCARM__ */

#if defined(__ICCARM__)
/* New definition from EWARM V9, compatible with EWARM8 */
int iar_fputc(int ch);
#define PUTCHAR_PROTOTYPE int iar_fputc(int ch)
#elif defined ( __CC_ARM ) || defined(__ARMCC_VERSION)
/* ARM Compiler 5/6*/
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#elif defined(__GNUC__)
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#endif /* __ICCARM__ */
/* USER CODE END PFP */

/**
  * @brief  Retargets the C library printf function to the USART.
  * @param  None
  * @retval None
  */
PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the USART1 and Loop until the end of transmission */
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

  return ch;
}

#if defined(__ICCARM__)
size_t __write(int file, unsigned char const *ptr, size_t len)
{
  size_t idx;
  unsigned char const *pdata = ptr;

  for (idx = 0; idx < len; idx++)
  {
    iar_fputc((int)*pdata);
    pdata++;
  }
  return len;
}
#endif /* __ICCARM__ */

12、外部中断点灯


void HAL_GPIO_EXTI_Callback(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
	if(GPIO_Pin==KEY2_Pin){
		HAL_GPIO_TogglePin(ACK_GPIO_Port,ACK_Pin);
	}
	else if(GPIO_Pin==KEY1_Pin)
	{
		HAL_GPIO_TogglePin(AUX_GPIO_Port,AUX_Pin);
	}
}

13、BLE点灯

server1_app.c中在SERVICE1_CHAR1_WRITE_EVT事件增加处理

 case SERVICE1_CHAR1_WRITE_EVT:
      /* USER CODE BEGIN Service1Char1_WRITE_EVT */
			if(p_Notification->DataTransfered.p_Payload[0]==0x20){
				HAL_GPIO_WritePin(ACK_GPIO_Port,ACK_Pin,GPIO_PIN_SET);

			}else if(p_Notification->DataTransfered.p_Payload[0]==0x10){
				HAL_GPIO_WritePin(ACK_GPIO_Port,ACK_Pin,GPIO_PIN_RESET);
			}else if(p_Notification->DataTransfered.p_Payload[0]==0x30){
				HAL_GPIO_WritePin(AUX_GPIO_Port,AUX_Pin,GPIO_PIN_SET);

			}else if(p_Notification->DataTransfered.p_Payload[0]==0x40){
				HAL_GPIO_WritePin(AUX_GPIO_Port,AUX_Pin,GPIO_PIN_RESET);
			}
      /* USER CODE END Service1Char1_WRITE_EVT */
      break;

通过判断BLE char1特征值写入的数值,控制灯亮灭。

14、使设备进入可发现模式

app_ble.c

524行附近、566行附近,HCI_DISCONNECTION_COMPLETE_EVT_CODE事件后增加:

  /* USER CODE BEGIN APP_BLE_Init_3 */
APP_BLE_Procedure_Gap_Peripheral(PROC_GAP_PERIPH_ADVERTISE_START_FAST);
  /* USER CODE END APP_BLE_Init_3 */


case HCI_DISCONNECTION_COMPLETE_EVT_CODE:
    {
      hci_disconnection_complete_event_rp0 *p_disconnection_complete_event;
      p_disconnection_complete_event = (hci_disconnection_complete_event_rp0 *) p_event_pckt->data;
        /* USER CODE BEGIN EVT_DISCONN_COMPLETE_3 */
APP_BLE_Procedure_Gap_Peripheral(PROC_GAP_PERIPH_ADVERTISE_START_FAST);
        /* USER CODE END EVT_DISCONN_COMPLETE_3 */


用手机app:e调试定制界面给ble发送指令控制2个LED

tutieshi_480x847_9s.gif


15、关于手机ble调试工具

我手机上安装好几个ble调试工具:

1)BLE调试助手(沁恒出品):没有自定义界面,但很稳定基本上所有的蓝牙设备都能发现

2)“蓝牙串口”(有个SPP图标):自定义界面功能很好,但是在我现在的手机上闪退,其他手机上不能发现WS8623

3)e调试:广告非常多,有个自定义界面功能。

每次调试时,哪个能用用哪个,为了要自定义界面这次用了e调试

下面简单介绍下怎么使用:

1)点击下面“实验室”,可以看到有个自定义功能

1.jpg


2)点击"自定义界面"进入下面界面

按加号可以增加界面,其中“蓝牙点灯”是我定义好的界面

点击“编辑组件”可以进行编辑

2.jpg

3)在编辑界面,可以放入一些组件

3.jpg

4)编辑其中的按钮

可以看到这个按钮如果是开发送0x10,如果是关发送0x20,对应前面BLE开灯关灯判断。

7.jpg

完成后保存。

5)回到“低功耗”,会搜索到BLE设备,如果搜到WS8623的广播,连接进去

5.jpg

6)点击“日志”->自定义界面

6.jpg

回到“服务”

8.jpg

勾选“WRITE”特征值的那个“向上”的按钮,然后按“蓝牙点灯”的“播放”按钮,就可以控制了。







关键词: WS8623-DB-V1.0    

院士
2025-05-28 10:33:40     打赏
2楼

谢谢分享。


院士
2025-05-30 16:35:43     打赏
3楼

示例程序跑起来了,不错不错

期待楼主的下一个大作


专家
2025-06-03 09:57:34     打赏
4楼

e调试定制界面是什么工具制作的?安卓吗?


工程师
2025-06-04 10:34:11     打赏
5楼

之前咱家论坛里有WBA5的蓝牙板子试用. ST的蓝牙库感觉不是很好用. 期待蓝牙的资源分享


高工
2025-06-04 12:50:55     打赏
6楼

期待继续更新,文章配置过程清晰使用的关键点有代码说明,很好的学习文章


专家
2025-06-05 07:17:17     打赏
7楼

楼主的调试分享好细节,收益匪浅。


共7条 1/1 1 跳转至

回复

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