Cómo utilizar CC2540 para crear iBeacon
Una PC
IAR Embedded Workbench IDE, disponible como prueba de 30 días.
Un teléfono inteligente con Bluetooth 4.0 y una de las siguientes aplicaciones instaladas
Tienda de aplicaciones Google Play de Android.
Placa de desarrollo CC2540
Descargador del depurador CC
Crear documento de proyecto iBeacon
Instalar el entorno de desarrollo CC254x oficial de TI
Copia la carpeta C:\Texas Instruments\BLE-CC254x-1.3.2\Projects\ble\SimpleBLEBroadcaster
Pega en: C:\Texas Instruments\BLE-CC254x-1.3.2/projects\SimpleBLEBroadcaster carpeta
Pegue en .\Ejecute IAR Embedded Workbench, haga clic en Archivo > Abrir > Espacio de trabajo
Modificar el código fuente
simpleBLEBroadcaster.c
// GAP - datos publicitarios (tamaño máximo = 31 bytes, pero
//es mejor mantenerlos breves para ahorrar energía al hacer publicidad)
static uint8 advertData[] =
{
// Banderas; esto configura el dispositivo para usar el modo visible limitado
// (cada vez que se publican anuncios de 30 segundos) en lugar del normal
// Modo visible (publicar anuncios indefinidamente)
0x02, //La longitud de estos datos
GAP_ADTYPE_FLAGS,
GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,
// Tres -byte de datos de transmisión "1 2 3"
0x04, //Longitud de los datos, incluidos los bytes del tipo de datos
GAP_ADTYPE_MANUFACTURER_SPECIFIC, // Tipo de datos publicitarios específicos del fabricante
1,
2,
3
};
Modificar las siguientes palabras clave
UID: E2C56DB5- DFFB-48D2-B060-D0F5A71096E0
Mayor: 1 (0x0001)
Menor: 1 (0x0001)
Potencia medida: -59 (0xc5 )
// GAP - Datos publicitarios (tamaño máximo = 31 bytes, pero
//Es mejor mantenerlo más corto para ahorrar energía al hacer publicidad)
estático uint8 advertData[] =
{
// 25 bytes de datos publicitarios de ibeacon
// Preámbulo: 0x4c000215
// UUID: E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
// Mayor: 1 (0x0001)
// Menor: 1 (0x0001)
// Potencia medida :
0x1A, // La longitud de estos datos incluye datos // La longitud de estos datos incluye bytes de tipo de datos
GAP_ADTYPE_MANUFACTURER_SPECIFIC, // Tipo de datos publicitarios específicos del fabricante
0x4c,
0x00,
0x02,
p>
0x15,
0xe2,
0xc5,
0x6d,
0xb5,
0xdf,
0xfb,
0x48,
0xd2,
0xb0,
0x60,
0xd0,
0xf5,
0xa7,
0x10,
0x96,
0xe0. ,
0x00,
0x01,
0x00,
0x01,
0xc5
};
El siguiente paso es modificar el tipo de transmisión modificando el siguiente código
//uint8 advType = GAP_ADTYPE_ADV_NONCONN_IND // Usar publicidad no conectable
<; p> uint8 advType = GAP_ADTYPE_ADV_DISCOVER_IND; // Usar anuncios escaneables no dirigidosModifique el código a continuación
//uint8 advType = GAP_ADTYPE_ADV_NONCONN_IND // Usar anuncios escaneables no dirigidos p>
Cambiar a uint8 advType = GAP_ADTYPE_ADV_NONCONN_IND; // Usar anuncios no conectables
//uint8 advType = GAP_ADTYPE_ADV_DISCOVER_IND // Usar anuncios unidireccionales escaneables
Próxima modificación GAP
//Establecer parámetros de función GAP
GAPRole_SetParameter( GAPROLE_ADVERT_ ENABLED, sizeof( uint8 ), amp; inicial_advertising_enable
GAPRole_SetParameter( GAPROLE_ADVERT_OFF_TIME, sizeof( uint16 ), amp.
GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, tamaño de ( scanRspData ), scanRspData
GAPRole_ SetParameter( GAPROLE_ADVERT_DATA, tamaño de ( advertData ), advertData
); GAPRole_SetParameter( GAPROLE_ADV_EVENT_TYPE, sizeof( uint8 ), & advType );
Dado que iBeacon debe transmitir continuamente y no responder a ninguna solicitud de datos, modificaremos GAPROLE_ADVERT_OFF_TIME y GAPROLE_SCAN_RSP_DATA.
//Establecer parámetros de rol GAP
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), amp; inicial_advertising_enable
//GAPRole_SetParameter( GAPROLE_ADVERT_OFF_TIME, sizeof( uint16 ), y amp; p>
p>
GAPRole_SetParameter( GAPROLE_ADV_EVENT_TYPE, sizeof( uint8 ), amp; advType );
Guarde el proyecto, compile y descargue el programa a la placa de desarrollo a través de CCDebugger.
Seleccione Proyecto gt; Limpiar para limpiar el proyecto.
Seleccione Proyecto gt; Crear para crear el proyecto.
Seleccione Proyecto gt; Descargar y depurar para enviar el código al llavero CC2540.
Seleccione Depurar gt; Ir para ejecutar el código en el llavero CC2540.
BLE iBeacon
Protección TI Displayport ESD--TPD8S009TPD8S009
Arduino SPI Essentials
TAGS
Arduino Arduino Due Arduino Esplora Atmega32u4 Atmel BacklightBMP085 Bootloader CC3x00 Hoja de datosDisplayport EasyDriver EDID eDPEsplora HDMI HMC5883L I2CJoystick LCD LED Luban LVDS MIPIMPU6050 MySQL Nginx PCB PHP pinModePWM PX4Raspberry Pi RGB SensorSPIStepper Motor Ubuntu Wifi Joystick Raspberry Pi Motor paso a paso fuente de alimentación retroiluminación Bluetooth
Categoría
Impresora 3D
Android
Instrucciones de aplicación
Arduino
AFR
Controlador de retroiluminación
C
CC3x00
Hoja de datos
Entorno de desarrollo de desarrollo
HDMI
Imágenes y Gráficos
Desarrollo de Gráficos
iOS
JavaScript
LCD/LCM
Materiales
Otros
Diseño de PCB
Gestión de energía
Desarrollo de prototipos
Raspberry Pi
Rostock
Sensor
Servidor
Software
STM32
Súper Manual
Tutorial p>
Trabajo