【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   
#include   
#include   
#include   
  
#include   
#include   
#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之串口_第1张图片


4)在IAR设置中添加串口驱动源文件路径

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

2、工程中添加协议栈提供的串口接口文件

【BLE-CC2640】CC2640之串口_第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();  

七、注意事项
暂无

八、实验结果
【BLE-CC2640】CC2640之串口_第3张图片





你可能感兴趣的:(BLE-CC2640)