本篇博文最後修改時間: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

4)在IAR設定中添加序列槽驅動源檔案路徑
$PROJ_DIR$/../../../Source/Application/GUA
2、工程中添加協定棧提供的序列槽接口檔案
路徑在"……\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();
七、注意事項
暫無
八、實驗結果