- 2024-11-20
-
回复了主题帖:
如何正确画PCB
吾妻思萌 发表于 2024-11-20 15:32
都是经验之谈 我看过中兴内部流出的一个pdf 200页总结。
200页你倒是说说呀,吃独食还吧唧嘴的行为是缺少公德心的表现。
-
发表了主题帖:
如何正确画PCB
画了十多年的PCB竟然不知道如何正确画PCB。因为是低速的板子只要连通了就工作了,其它没有任何经验。下面的问题请高手给点指点
1、什么是“分隔地”
2、SMT焊盘如何防止“立碑”
3、过孔与线径是什么关系
4、非本站的封装,如何确定1PIN的位置?
5、如何顺利的导出焊接文件
6、如何理解3H原则
7、什么是高频地环路
下面是仿照图
- 2024-11-18
-
回复了主题帖:
谁的公司有回流焊呀?能否帮忙焊接部分器件?
是的就是这个原因,感觉就是因为有瓶醋,就需要包点饺子。
-
回复了主题帖:
【Follow me第二季第3期】ek-ra6m5 VSCode 开发环境
不能调试是因为:vscode插件与其它厂家的调试环境冲突,造成CMAKE不能编译造成的。但是可以通过配置调整就可以了
找到.vscode文件夹 .vscode/cmake-kits.json文件,修改ARM_TOOLCHAIN_PATH 为ARM_GCC_TOOLCHAIN_PATH (需要环境变量)
在vscode的底部状态栏:选择"ARM GCC kit with toolchainFile"
程序打断点,然后构建。
就可以调试了,但是发现断点的位置不是很准确。目前正在解决中
- 2024-11-17
-
发表了主题帖:
【Follow me第二季第3期】ek-ra6m5 VSCode 开发环境
1、简介
Renesas 公司除提供Keil、IAR、E2S外还提供了基于CMAKE 和 VScode的集成环境。本期将进行VSCode集成环境的搭建。下面过程中会涉及到多个软件和工具。
硬件环境
ek-ra6m5开发板,集成jlink调试工具。
软件
(1)J-Link驱动,segger公司提供。可以到该公司网站下载驱动。
(2)VSCode环境,由微软公司提供,为开源软件
(3)编译软件,开源软件
编译软件推荐的有两个产品,Arm GNU Toolchain和LLVM Embedded Toolchain for Arm 经过实验两个都可以使用,但是前者使用更为广泛。
(4)CMAKE 项目管理工具,开源软件
CMAKE构建管理工具,https://cmake.org/download/ CMAKE只是构建项目和管理项目不负责构建项目,需要配合“构建工具”
(5)Ninja 构建工具
Ninja是具体的构建工具,当然也可以使用MAKE,但是windows推荐Ninja,https://github.com/ninja-build/ninja/releases/
(6)RA Smart Configurator (RASC)项目配置生成工具,由Renesas公司提供
https://github.com/renesas/fsp/releases/可以下载该软件
(7)Renesas VSCode扩展,由Renesas公司提供。
除了以上工具,还需要Java和Python软件。否则很多软件无法运行。
2、安装配置
需要确认windows系统的Java和Python已经配置和安装完成
我的系统J-link已经配置完成,但是该软件安装比较简单。甚至只需要按装驱动就可以。需要注意:较新的版本对于一些便宜的j-link设备就是灾难!
对于GNU Arm Embedded Toolchain环境的安装,这里需要注意:
将arm-gnu-toolchain-12.2.mpacbti-rel1-mingw-w64-i686-arm-none-eabi.zip文件解压,由于文件名称较长,所以将文件名称修改为C:\12_2_mpacbti_rel1,我放在了C盘
设置:ARM_GCC_TOOLCHAIN_PATH环境变量。
增加到PATH当中,;%ARM_GCC_TOOLCHAIN_PATH%
在终端环境中验证:
CMAKE安装
将cmake-3.31.0-windows-x86_64.zip文件下载到本地,解压为CAMKE,将c:\cmake-3.31.0目录加入PATH当中
NINJA安装
将ninja-win.zip解压到c:\ninja目录增加到PATH当中
RA Smart Configurator (RASC)安装
将setup_fsp_v5_6_0_e2s_v2024-10.exe下载到本地,运行安装程序。
安装完成后,就可以使用RASC来创建项目了。
VScode安装
将VSCode-win32-x64-1.95.3.zip下载和解压到c:\VSCode-win32-x64-1.95.3目录,加入到PATH当中
扩展安装
打开VSCode扩展,使用RENESAS搜索扩展程序
安装两个扩展。
3、创建项目和运行项目
按照Creating and Building a Project指导进行项目创建。
VScode环境使用菜单创建项目
创建程序,生成程序
创建完成后,编译和构建项目
注意:我没有完成项目的自动创建和一体化调试。一下是:手工过程
进入项目目录,执行 cmake -DARM_TOOLCHAIN_PATH="C:/12_2_mpacbti_rel1/bin" -DCMAKE_TOOLCHAIN_FILE=cmake/gcc.cmake -G Ninja -B build/Debug
使用cmake --build build/Debug构建目录,使用code . 打开vscode
运行debug按钮完成程序的下载和运行。
4、总结
目前可以编译、下载和运行项目,但是无法对项目进行调试
- 2024-11-04
-
回复了主题帖:
【NUCLEO-WB09KE】开箱及开发环境测试
lijinlei 发表于 2024-11-3 15:28
我的怎么都识别不到设备,连接开发板之后端口根本没变化
板子上有个跳线,设置到boot loader状态,我上面有图
- 2024-10-29
-
发表了主题帖:
【NUCLEO-WB09KE】BLE应用架构与分析
1、测试介绍
(1)测试前说明
为了了解ST BLE设备的编程架构,开始对ST提供的应用进行测试。最开始时使用“BLE_Peripheral_Lite”应用进行研究,结果该应用出现了配对失败的问题,随即放弃了该应用转而使用BLE_p2pServer应用进行测试。所以下面的测试为该应用的分析和测试。
(2)测试需要的硬件
PC主机:系统为windows 10版本
USB蓝牙适配器:版本为5.4,建议使用勉驱的产品,需要驱动的产品又可能出现兼容问题。
NUCLEO-WB09KE开发板:主要芯片为STM32WB09KE芯片,为低功耗产品ARM m0+内核
(3)测试需要的软件
Bluetooth LE Eplorer:该软件为微软提供的测试产品,虽然功能一般但是较为实用。可以从微软的应用商店免费获得。
BLE_p2pServer: STM32WB0 的演示程序。使用STM32CubeMX复制
ComAssistant串口助手:可以从EE下载,软件为本人编写
2、测试过程
(1)下载安装Bluetooth LE Eplorer软件
软件比较简洁,只要启动就可以使用了
(2)烧写BLE_p2pServer到开发板
注意:需要将开发板的跳线设置到Boot Loader状态。
打开keil软件编译程序,如果可以连接开发板则进行烧写
烧写到开发板后,重新上电,上电后
打开串口连接测试串口波特率:115200,N,8,1
按压B3停止系统指示灯不停闪烁,按压B1开始系统连接状态
(3)连接配对
将开发板的跳线设置到USER FLASH状态
进行配对,可以发现设备的PIN码一致,如果:多次配对需要在windows设备管理中删除设备。
配对成功后
进行操作,向设备写入0101打开LED1 ,写入0100关闭LED1
写入命令
3、程序结构分析
设备功能参数,设备包含三组“Service”
服务号:UUID
SERVICE1
UUID:00001801-0000-1000-8000-00805f9b34fb
SERVICE2
UUID:00001800-0000-1000-8000-00805f9b34fb
SERVICE3
UUID:0000fe40-cc7a-482a-984a-7f2ed5b3e58f
#define P2P_SERVER_UUID 0x8f,0xe5,0xb3,0xd5,0x2e,0x7f,0x4a,0x98,0x2a,0x48,0x7a,0xcc,0x40,0xfe,0x00,0x00
#define LED_C_UUID 0x19,0xed,0x82,0xae,0xed,0x21,0x4c,0x9d,0x41,0x45,0x22,0x8e,0x41,0xfe,0x00,0x00
#define SWITCH_C_UUID 0x19,0xed,0x82,0xae,0xed,0x21,0x4c,0x9d,0x41,0x45,0x22,0x8e,0x42,0xfe,0x00,0x00
这个与程序定义的一致。
/* USER CODE BEGIN Header */
/**
******************************************************************************
* [url=home.php?mod=space&uid=1307177]@File[/url] p2p_server_app.c
* [url=home.php?mod=space&uid=1315547]@author[/url] MCD Application Team
* [url=home.php?mod=space&uid=159083]@brief[/url] p2p_server_app application definition.
******************************************************************************
* [url=home.php?mod=space&uid=1020061]@attention[/url] *
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "app_common.h"
#include "app_ble.h"
#include "ble.h"
#include "p2p_server_app.h"
#include "p2p_server.h"
#include "stm32_seq.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
typedef struct{
uint8_t Device_Led_Selection;
uint8_t Led1;
}P2P_LedCharValue_t;
typedef struct{
uint8_t Device_Button_Selection;
uint8_t ButtonStatus;
}P2P_ButtonCharValue_t;
/* USER CODE END PTD */
typedef enum
{
Switch_c_NOTIFICATION_OFF,
Switch_c_NOTIFICATION_ON,
/* USER CODE BEGIN Service1_APP_SendInformation_t */
/* USER CODE END Service1_APP_SendInformation_t */
P2P_SERVER_APP_SENDINFORMATION_LAST
} P2P_SERVER_APP_SendInformation_t;
typedef struct
{
P2P_SERVER_APP_SendInformation_t Switch_c_Notification_Status;
/* USER CODE BEGIN Service1_APP_Context_t */
P2P_LedCharValue_t LedControl;
P2P_ButtonCharValue_t ButtonControl;
/* USER CODE END Service1_APP_Context_t */
uint16_t ConnectionHandle;
} P2P_SERVER_APP_Context_t;
/* Private defines -----------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */
/* External variables --------------------------------------------------------*/
/* USER CODE BEGIN EV */
/* USER CODE END EV */
/* Private macros ------------------------------------------------------------*/
/* USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
static P2P_SERVER_APP_Context_t P2P_SERVER_APP_Context;
uint8_t a_P2P_SERVER_UpdateCharData[247];
/* USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
static void P2P_SERVER_Switch_c_SendNotification(void);
/* USER CODE BEGIN PFP */
static void P2P_SERVER_APP_LED_BUTTON_context_Init(void);
/* USER CODE END PFP */
/* Functions Definition ------------------------------------------------------*/
void P2P_SERVER_Notification(P2P_SERVER_NotificationEvt_t *p_Notification)
{
/* USER CODE BEGIN Service1_Notification_1 */
/* USER CODE END Service1_Notification_1 */
switch(p_Notification->EvtOpcode)
{
/* USER CODE BEGIN Service1_Notification_Service1_EvtOpcode */
/* USER CODE END Service1_Notification_Service1_EvtOpcode */
case P2P_SERVER_LED_C_READ_EVT:
/* USER CODE BEGIN Service1Char1_READ_EVT */
/* USER CODE END Service1Char1_READ_EVT */
break;
case P2P_SERVER_LED_C_WRITE_NO_RESP_EVT:
/* USER CODE BEGIN Service1Char1_WRITE_NO_RESP_EVT */
if(p_Notification->DataTransfered.p_Payload[1] == 0x01)
{
BSP_LED_On(LED_BLUE);
APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 ON\n");
P2P_SERVER_APP_Context.LedControl.Led1 = 0x01; /* LED1 ON */
}
if(p_Notification->DataTransfered.p_Payload[1] == 0x00)
{
BSP_LED_Off(LED_BLUE);
APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 OFF\n");
P2P_SERVER_APP_Context.LedControl.Led1 = 0x00; /* LED1 OFF */
}
/* USER CODE END Service1Char1_WRITE_NO_RESP_EVT */
break;
case P2P_SERVER_SWITCH_C_NOTIFY_ENABLED_EVT:
/* USER CODE BEGIN Service1Char2_NOTIFY_ENABLED_EVT */
P2P_SERVER_APP_Context.Switch_c_Notification_Status = Switch_c_NOTIFICATION_ON;
APP_DBG_MSG("-- P2P APPLICATION SERVER : NOTIFICATION ENABLED\n");
APP_DBG_MSG(" \n\r");
/* USER CODE END Service1Char2_NOTIFY_ENABLED_EVT */
break;
case P2P_SERVER_SWITCH_C_NOTIFY_DISABLED_EVT:
/* USER CODE BEGIN Service1Char2_NOTIFY_DISABLED_EVT */
P2P_SERVER_APP_Context.Switch_c_Notification_Status = Switch_c_NOTIFICATION_OFF;
APP_DBG_MSG("-- P2P APPLICATION SERVER : NOTIFICATION DISABLED\n");
APP_DBG_MSG(" \n\r");
/* USER CODE END Service1Char2_NOTIFY_DISABLED_EVT */
break;
default:
/* USER CODE BEGIN Service1_Notification_default */
/* USER CODE END Service1_Notification_default */
break;
}
/* USER CODE BEGIN Service1_Notification_2 */
/* USER CODE END Service1_Notification_2 */
return;
}
void P2P_SERVER_APP_EvtRx(P2P_SERVER_APP_ConnHandleNotEvt_t *p_Notification)
{
/* USER CODE BEGIN Service1_APP_EvtRx_1 */
/* USER CODE END Service1_APP_EvtRx_1 */
switch(p_Notification->EvtOpcode)
{
/* USER CODE BEGIN Service1_APP_EvtRx_Service1_EvtOpcode */
/* USER CODE END Service1_APP_EvtRx_Service1_EvtOpcode */
case P2P_SERVER_CONN_HANDLE_EVT :
P2P_SERVER_APP_Context.ConnectionHandle = p_Notification->ConnectionHandle;
/* USER CODE BEGIN Service1_APP_CENTR_CONN_HANDLE_EVT */
/* USER CODE END Service1_APP_CENTR_CONN_HANDLE_EVT */
break;
case P2P_SERVER_DISCON_HANDLE_EVT :
P2P_SERVER_APP_Context.ConnectionHandle = 0xFFFF;
/* USER CODE BEGIN Service1_APP_DISCON_HANDLE_EVT */
P2P_SERVER_APP_LED_BUTTON_context_Init();
/* USER CODE END Service1_APP_DISCON_HANDLE_EVT */
break;
default:
/* USER CODE BEGIN Service1_APP_EvtRx_default */
/* USER CODE END Service1_APP_EvtRx_default */
break;
}
/* USER CODE BEGIN Service1_APP_EvtRx_2 */
/* USER CODE END Service1_APP_EvtRx_2 */
return;
}
void P2P_SERVER_APP_Init(void)
{
P2P_SERVER_APP_Context.ConnectionHandle = 0xFFFF;
P2P_SERVER_Init();
/* USER CODE BEGIN Service1_APP_Init */
UTIL_SEQ_RegTask( 1U << CFG_TASK_SEND_NOTIF_ID, UTIL_SEQ_RFU, P2P_SERVER_Switch_c_SendNotification);
/**
* Initialize LedButton Service
*/
P2P_SERVER_APP_Context.Switch_c_Notification_Status= Switch_c_NOTIFICATION_OFF;
P2P_SERVER_APP_LED_BUTTON_context_Init();
/* USER CODE END Service1_APP_Init */
return;
}
/* USER CODE BEGIN FD */
void P2P_SERVER_APP_LED_BUTTON_context_Init(void)
{
BSP_LED_Off(LED_BLUE);
P2P_SERVER_APP_Context.LedControl.Device_Led_Selection=0x01; /* Device1 */
P2P_SERVER_APP_Context.LedControl.Led1=0x00; /* led OFF */
P2P_SERVER_APP_Context.ButtonControl.Device_Button_Selection=0x01;/* Device1 */
P2P_SERVER_APP_Context.ButtonControl.ButtonStatus=0x00;
return;
}
/* USER CODE END FD */
/*************************************************************
*
* LOCAL FUNCTIONS
*
*************************************************************/
__USED void P2P_SERVER_Switch_c_SendNotification(void) /* Property Notification */
{
P2P_SERVER_APP_SendInformation_t notification_on_off = Switch_c_NOTIFICATION_OFF;
P2P_SERVER_Data_t p2p_server_notification_data;
p2p_server_notification_data.p_Payload = (uint8_t*)a_P2P_SERVER_UpdateCharData;
p2p_server_notification_data.Length = 0;
/* USER CODE BEGIN Service1Char2_NS_1*/
if(P2P_SERVER_APP_Context.ButtonControl.ButtonStatus == 0x00)
{
P2P_SERVER_APP_Context.ButtonControl.ButtonStatus = 0x01;
}
else
{
P2P_SERVER_APP_Context.ButtonControl.ButtonStatus = 0x00;
}
a_P2P_SERVER_UpdateCharData[0] = 0x01; /* Device Led selection */
a_P2P_SERVER_UpdateCharData[1] = P2P_SERVER_APP_Context.ButtonControl.ButtonStatus;
/* Update notification data length */
p2p_server_notification_data.Length = (p2p_server_notification_data.Length) + 2;
if(P2P_SERVER_APP_Context.Switch_c_Notification_Status == Switch_c_NOTIFICATION_ON)
{
APP_DBG_MSG("-- P2P APPLICATION SERVER : INFORM CLIENT BUTTON 1 PUSHED\n");
notification_on_off = Switch_c_NOTIFICATION_ON;
}
else
{
APP_DBG_MSG("-- P2P APPLICATION SERVER : CAN'T INFORM CLIENT - NOTIFICATION DISABLED\n");
}
/* USER CODE END Service1Char2_NS_1*/
if (notification_on_off != Switch_c_NOTIFICATION_OFF && P2P_SERVER_APP_Context.ConnectionHandle != 0xFFFF)
{
P2P_SERVER_NotifyValue(P2P_SERVER_SWITCH_C, &p2p_server_notification_data, P2P_SERVER_APP_Context.ConnectionHandle);
}
/* USER CODE BEGIN Service1Char2_NS_Last*/
/* USER CODE END Service1Char2_NS_Last*/
return;
}
/* USER CODE BEGIN FD_LOCAL_FUNCTIONS*/
/* USER CODE END FD_LOCAL_FUNCTIONS*/
程序摘抄与p2p_serverApp.c文件。
/* Private function prototypes -----------------------------------------------*/
static void P2P_SERVER_Switch_c_SendNotification(void);
/* USER CODE BEGIN PFP */
static void P2P_SERVER_APP_LED_BUTTON_context_Init(void);
程序中有关键的回调函数:P2P_SERVER_Switch_c_SendNotification,这个函数在收到消息后被调用。
事件的执行如下:
case P2P_SERVER_LED_C_WRITE_NO_RESP_EVT:
/* USER CODE BEGIN Service1Char1_WRITE_NO_RESP_EVT */
if(p_Notification->DataTransfered.p_Payload[1] == 0x01)
{
BSP_LED_On(LED_BLUE);
APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 ON\n");
P2P_SERVER_APP_Context.LedControl.Led1 = 0x01; /* LED1 ON */
}
if(p_Notification->DataTransfered.p_Payload[1] == 0x00)
{
BSP_LED_Off(LED_BLUE);
APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 OFF\n");
P2P_SERVER_APP_Context.LedControl.Led1 = 0x00; /* LED1 OFF */
}
/* USER CODE END Service1Char1_WRITE_NO_RESP_EVT */
break;
这里含有一个开关控制:P2P_SERVER_SWITCH_C_NOTIFY_ENABLED_EVT可以扩展该函数。
- 2024-10-28
-
回复了主题帖:
测评入围名单: 英飞凌PSOC™ 4100S Max Pioneer套件
计划确认,可以按时完成测评。感谢英飞凌和EE
- 2024-10-26
-
回复了主题帖:
#反激大作战#来聊一聊,在设计反激电源的时候,你觉得最重要的是什么?
变压器最难的是基础知识,多数都是经验格式,但是又不告诉你这参数如何确定。先确定什么后确定什么。
例如:
(1)开关频率和开关损耗什么关系
(2)线径和肌肤效应什么关系(频率一定的情况下)
(3)变压器的电感如何确定等。
(4)气隙的距离和匝数关系等
- 2024-10-23
-
发表了主题帖:
光耦模拟电位器原理
1、如图:两个光耦模拟电位器的电路。
2、该电路使用两个光耦模拟电位器,PWM的脉宽通过上下两个光耦调节“电位器”的输出的电位。
这个电路通过RC滤波来控制电位器的输出电压,这个和简易的DAC非常相似。
我的问题是这个电路的功耗如何计算。是不是可以等效为电阻分压电路?
- 2024-10-22
-
回复了主题帖:
请问,这个有两个MOS管控制的12V电压的工作过程怎么分析?
就是EN-2端的电压不能直接开启Q3的G端电压,使用Q4作为中间转换一下。常见到的方案是Q4为三极管,这里用了MOS管
-
回复了主题帖:
【NUCLEO-WB09KE】蓝牙通信与OTA升级
wangerxian 发表于 2024-10-22 09:07
通过手机可以给它OTA升级吗。
可以,使用ST的工具软件或高版本的web页面都可以。这个比较方便
- 2024-10-19
-
回复了主题帖:
【NUCLEO-WB09KE】蓝牙通信与OTA升级
感觉OTA应用的安全性有待提高
- 2024-10-18
-
发表了主题帖:
【NUCLEO-WB09KE】蓝牙通信与OTA升级
本帖最后由 bigbat 于 2024-10-19 15:12 编辑
1、测试介绍
目前我们使用的升级都可以使用OTA进行升级,ST公司也可以使用蓝牙通讯进行OTA升级程序。本次测试将对OTA进行测试。测试的硬件除了NUCLEO-WB09KE开发板外,还需要准备手机硬件或PC主机。手机只可以用作OTA升级服务器,而PC机除了可以使用做OTA升级服务器外也可以用作开发使用。既然是OTA那么就应该使用方便才行。所以ST公司将提供了web方式的OTA服务程序。
按照ST公司的方案,只需要下载STM32WBA-Web-Bluetooth-App-Interfaces程序到本地,然后根据需要修改成公司的OTA页面。
但是这里有个BUG,我的应用在安装后,一直停在了”npm warn deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x.“就不再动了。
npm install
所以只能使用https://applible.github.io/Web_Bluetooth_App_WBA/
页面链接和配对和升级服务器。
2、NUCLEO-WB09KE开发板OTA存根服务器
开发板必须使用OTA服务的程序才可以。ST公司提供了BLE_ApplicationInstallManager、BLE_p2pServer_ota、BLE_HeartRate_ota三个程序带有OTA服务。
使用开发工具烧写到开发板
3、OTA服务建立程序
(1)建立配对
(2)配对成功
(3)升级设置
(4)进入OTA升级服务
(5)上传OTA程序,BLE_p2pServer_ota.bin程序
(6)升级程序成功后
(7)完后,程序就具有OTA功能的BLE_p2pServer_ota的程序
(8)连接配对后可以使用该页面测试
(9)测试程序
4、测试照片
Ligth ON 灯打开
Ligth OFF 灯关闭
5、总结
OTA程序的服务只要有OTA就可以使用OTA服务。
- 2024-10-17
-
回复了主题帖:
【入围名单】Follow me第二季第3期,与得捷一起解锁开发板超能力!
个人信息已更改,由于mail.tom.com的邮箱服务公司停止服务,邮箱已经更改。申请更改个人信息
- 2024-10-13
-
加入了学习《DigiKey 应用说:蓝牙5.4 新特性解读及实例演示》,观看 蓝牙5.4 新特性解读及实例演示
- 2024-10-12
-
回复了主题帖:
【NUCLEO-WB09KE】蓝牙通信的稳定性与BEACON服务
dvacos 发表于 2024-10-11 16:43
Beacon 就是广播,不能连接代码专门设置的不给连接。
Beacon 协议可以包含指令的,例如:发出指令使得设备锁定等动作,只是需要设备服务端配合
- 2024-10-11
-
回复了主题帖:
【NUCLEO-WB09KE】PC机与蓝牙设备通讯与web编程
dvacos 发表于 2024-10-11 16:42
你这个是谷歌的web ble的demo改的吧(询问,没恶意)?
这些demo没有服务器是不是不能在手机上运行,要 ...
手机上的需要看操作系统的版本,其实是浏览器的内核,我的程序也可以运行在web服务器当中。客户端本地不需要安装任何支持库
-
回复了主题帖:
【NUCLEO-WB09KE】PC机与蓝牙设备通讯与web编程
dvacos 发表于 2024-10-11 16:42
你这个是谷歌的web ble的demo改的吧(询问,没恶意)?
这些demo没有服务器是不是不能在手机上运行,要 ...
是web标准的BLE API,不需要额外的设置。最新的浏览器都支持。可以参考文章中的相关连接
-
发表了主题帖:
【NUCLEO-WB09KE】蓝牙通信的稳定性与BEACON服务
1、测试介绍
无线信标服务是一种物件定位跟踪服务,BLE Beacon服务可以用来监视我们身边的一些智能设备是否离开我们的距离。如:佩戴Beacon服务设备的儿童在该设备远离我们的距离足够远时,设备向我们发出“告警”,提示我们应该注意这一情况。本次测试将使用NUCLEO-WB09KE开发板模拟Beacon设备。
2、测试过程
(1)通过STM32Cube下载测试程序BLE_Beacon测试例程
(2)使用keil编译例程,烧写到开发板
(3)下载一个Beacon服务应用
Beacon服务软件比较多,我选择了BrigthBeacon软件。
(4)打开软件进行设置
注意:一定要给设备赋予蓝牙使用权限
打开后可以发现会从当前搜索到一些可以接收的Beacon设备,这些设备不需要预先和手机配对
(5)将开发板设备添加到软件当中。
需要添加的设备UUID为:00010203-0405-0607-0809-0a0b0c0d0e0f
这个UUID是从Readme.html文件中获得的。
开发板设备的UUID被登记后,就可以使用软件查看该设备的详细信息了。
(6)测试开发板的功能
因为开发板不能移动,所以我就将手机拿到远离开发板的地方进行测试。可能是我的USB BLE适配器太好了的缘故,我(我家在三楼,为板楼结构)将设备直到拿到一楼才发现设备信号丢失。
查找设备详细信息
回到二楼发现信号
设备信息
重新出现。
3、测试过程总结
测试中发现周围很多的Beacon设备,不知道开发板如何接收Beacon的信号。
对于Beacon服务和BLE设备关系是怎样定义的,本测试中的Beacon设备无法与主设备(PC或手机)都无法配对。后续我将继续深入的学习该协议。