天天看點

【BLE-CC2640】CC2640之序列槽

本篇博文最後修改時間:2017年03月24日,14:34。

一、簡介

本文簡介如何在simpleBLEperipheral工程中使用序列槽。

二、實驗平台

協定棧版本:ble_cc26xx_2_01_00_44423

編譯軟體:IAR Embedded Workbench for ARM Version 7.40

硬體平台:CC26xxDK開發闆

仿真器:XDS100V3(香瓜)

三、版權聲明

部落客:甜甜的大香瓜

聲明:喝水不忘挖井人,轉載請注明出處。

原文位址:http://blog.csdn.NET/feilusia

聯系方式:[email protected]

香瓜BLE之CC2541群:127442605

香瓜BLE之CC2640群:557278427

香瓜BLE之Android群:541462902

香瓜單片機之STM8/STM32群:164311667

香瓜單片機之Linux群:512598061

香瓜單片機之職場交流群:450154342

甜甜的大香瓜的小店(淘寶店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i

四、 實驗前提 1、在進行本文步驟前,請先 閱讀 以下博文: 暫無

2、在進行本文步驟前,請先 實作以下博文:

暫無

五、基礎知識

暫無

六、實驗步驟

1、編寫并添加序列槽驅動

1)寫一個序列槽驅動GUA_Uart.c(存放在“……\ble_cc26xx_2_01_00_44423\Projects\ble\SimpleBLEPeripheral\CC26xx\Source\Application\GUA”路徑下)

//******************************************************************************            
//name:         GUA_Uart.c            
//introduce:    香瓜的序列槽驅動       
//author:       甜甜的大香瓜          
//email:        [email protected]       
//QQ group      香瓜BLE之CC2640(557278427)     
//changetime:   2017.03.24     
//******************************************************************************  
#include <ti/sysbios/knl/Task.h>  
#include <ti/sysbios/knl/Clock.h>  
#include <ti/sysbios/knl/Semaphore.h>  
#include <ti/sysbios/knl/Queue.h>  
  
#include <string.h>  
#include <stdio.h>  
#include "hci_tl.h"  
#include "../../npi/inc/npi_tl_uart.h"  
  
#include "GUA_Uart.h" 

/*********************宏定義************************/       
#ifndef U8      
typedef unsigned char U8;      
#endif    
  
#ifndef U16      
typedef unsigned short U16;      
#endif    
  
/*********************内部變量************************/   
static GUA_8 sbGUA_RxBuf[256];  
static GUA_8 sbGUA_TxBuf[256];  
  
/*********************内部函數************************/   
static void GUA_UART_CallBack(GUA_U16 rxLen, GUA_U16 txLen);  

//******************************************************************************            
//name:             GUA_UART_WriteTransport           
//introduce:        香瓜的序列槽驅動寫函數          
//parameter:        str:發送的資料          
//                  len:資料長度       
//return:           none         
//author:           甜甜的大香瓜                 
//email:            [email protected]     
//QQ group          香瓜BLE之CC2640(557278427)                  
//changetime:       2017.03.24                    
//******************************************************************************   
void GUA_UART_WriteTransport(GUA_U8 *pGUA_Str, GUA_U8 nGUA_Len)  
{  
  memset(sbGUA_TxBuf, 0, sizeof(sbGUA_TxBuf));         
  memcpy(sbGUA_TxBuf, pGUA_Str, nGUA_Len);  
  NPITLUART_writeTransport(nGUA_Len);  
}  
  
//******************************************************************************            
//name:             GUA_UART_CallBack           
//introduce:        香瓜的序列槽驅動回調函數          
//parameter:        rxLen:接收資料長度          
//                  txLen:發送資料長度       
//return:           none         
//author:           甜甜的大香瓜                 
//email:            [email protected]     
//QQ group          香瓜BLE之CC2640(557278427)                  
//changetime:       2017.03.24                    
//******************************************************************************   
static void GUA_UART_CallBack(GUA_U16 nGUA_RxLen, GUA_U16 nGUA_TxLen)  
{  
  //如果有接收資料,則處理  
  if(nGUA_RxLen > 0)  
  {  
    //将接收到的資料發出去  
    sprintf(sbGUA_TxBuf, sbGUA_RxBuf, nGUA_RxLen);  
    NPITLUART_writeTransport(nGUA_RxLen);  
  }  
}  
  
//******************************************************************************            
//name:             GUA_UART_WriteTransport           
//introduce:        香瓜的序列槽驅動寫函數          
//parameter:        str:發送的資料          
//                  len:資料長度       
//return:           none         
//author:           甜甜的大香瓜                 
//email:            [email protected]     
//QQ group          香瓜BLE之CC2640(557278427)                  
//changetime:       2017.03.24                    
//******************************************************************************   
void GUA_UART_Init(void)  
{  
  //初始化  
  NPITLUART_initializeTransport(sbGUA_RxBuf, sbGUA_TxBuf, GUA_UART_CallBack);  
    
  //列印Hello GUA  
  sprintf(sbGUA_TxBuf, "Hello GUA\n");  
  NPITLUART_writeTransport(strlen(sbGUA_TxBuf));  
}  
           

2)寫一個序列槽驅動頭檔案GUA_Uart.h(存放在“……\ble_cc26xx_2_01_00_44423\Projects\ble\SimpleBLEPeripheral\CC26xx\Source\Application\GUA”路徑下)

//******************************************************************************            
//name:         GUA_Uart.h           
//introduce:    香瓜的序列槽驅動的頭檔案       
//author:       甜甜的大香瓜          
//email:        [email protected]       
//QQ group      香瓜BLE之CC2640(557278427)     
//changetime:   2017.03.24   
//******************************************************************************  
#ifndef _GUA_UART_H_  
#define _GUA_UART_H_  
  
/*********************宏定義************************/ 
//類型宏  
#ifndef GUA_U8          
typedef unsigned char GUA_U8;          
#endif      
  
#ifndef GUA_8          
typedef signed char GUA_8;          
#endif        
        
#ifndef GUA_U16          
typedef unsigned short GUA_U16;          
#endif   
  
#ifndef GUA_16          
typedef signed short GUA_16;          
#endif           
        
#ifndef GUA_U32          
typedef unsigned long GUA_U32;          
#endif   
  
#ifndef GUA_32          
typedef signed long GUA_32;         
#endif  
  
#ifndef GUA_U64      
typedef unsigned long long GUA_U64;    
#endif  
  
#ifndef GUA_64      
typedef signed long long GUA_64;    
#endif 

/*********************函數聲明************************/  
extern void GUA_UART_Init(void);  
extern void GUA_UART_WriteTransport(GUA_U8 *pGUA_Str, GUA_U8 nGUA_Len);  
  
#endif  
           

3)工程中添加 GUA_Uart .c和 GUA_Uart .h

【BLE-CC2640】CC2640之序列槽

4)在IAR設定中添加序列槽驅動源檔案路徑

$PROJ_DIR$/../../../Source/Application/GUA
           

2、工程中添加協定棧提供的序列槽接口檔案

【BLE-CC2640】CC2640之序列槽

路徑在"……\ble_cc26xx_2_01_00_44423\Components\npi"

3、修改工程的設定的預編譯部分 1)選擇非低功耗模式

xPOWER_SAVING
           

2)開啟序列槽宏

NPI_USE_UART
           

4、應用層調用(simpleBLEperipheral.c中) 1)添加頭檔案

//GUA
#include "GUA_Uart.h"
           

2)添加初始化函數(SimpleBLEPeripheral_init函數中)

//序列槽初始化
  GUA_UART_Init();  
           

七、注意事項

暫無

八、實驗結果

【BLE-CC2640】CC2640之序列槽