121 lines
3.1 KiB
C
121 lines
3.1 KiB
C
/************************************************************************************
|
||
* @Copyright (c) :(C)2021, Qindao ieslab Co., Ltd
|
||
* @FileName :nb_uart_driver.h
|
||
* @Author :QDIES PLATFORM TEAM
|
||
* @Version :V1.1
|
||
* @Date :2021-07
|
||
* @Description :
|
||
************************************************************************************/
|
||
|
||
#ifndef __BLE_UART_DRIVER_H
|
||
#define __BLE_UART_DRIVER_H
|
||
|
||
#include "ddl.h"
|
||
#include "type.h"
|
||
#include "UWater_uart_driver.h"
|
||
|
||
#ifdef __cplusplus
|
||
extern "C"
|
||
{
|
||
#endif
|
||
|
||
#define BLE_TX_PORT LPUART1_TX_PORT //蓝牙串口发送
|
||
#define BLE_TX_PIN LPUART1_TX_PIN
|
||
#define BLE_RX_PORT LPUART1_RX_PORT //蓝牙串口接收
|
||
#define BLE_RX_PIN LPUART1_RX_PIN
|
||
#define BLE_LP_COM 1 //是否为LPUART,1:是,0否,与下述串口对应
|
||
#define BLE_UART_REALCOM M0P_LPUART1 //底层寄存器定义的串口,有别与串口驱动模块的定义
|
||
|
||
#define BLE_AT_RCV_BUF_SIZE 64
|
||
#define BLE_AT_SCAN_MAC_TOTAL 20 //扫描缓冲区数组个数
|
||
|
||
//UART查询的状态信息
|
||
#define BLE_UART_ING ((s8)-1) //查询中
|
||
#define BLE_UART_FINISH ((s8)-2) //完成
|
||
#define BLE_UART_ERROR ((s8)-3) //错误帧
|
||
#define BLE_UART_OK ((s8)-4) //正确帧
|
||
|
||
#define BLE_UP_BUF_SIZE 256
|
||
#define BLE_AT_UP_BUF_SIZE 50
|
||
/*************************************普通使用者无需关心下述宏定义******************************************/
|
||
//串口接收状态机中的状态变量BLE_S0-BLE_S10
|
||
enum{
|
||
BLE_S0 = 10 ,
|
||
BLE_S1 ,
|
||
BLE_S2 ,
|
||
BLE_S3 ,
|
||
BLE_S4 ,
|
||
BLE_S5 ,
|
||
BLE_S6 ,
|
||
BLE_S7 ,
|
||
BLE_S8 ,
|
||
BLE_S9 ,
|
||
BLE_S10 ,
|
||
};
|
||
|
||
|
||
|
||
enum
|
||
{
|
||
BLE_cst_AT_NOMAL_RCV = 0,//透传接收
|
||
BLE_cst_AT_OK_ERROR ,//正确错误,设置
|
||
BLE_cst_AT_AT ,//AT?
|
||
BLE_cst_AT_QUERY ,
|
||
BLE_cst_AT_SCAN_RCV ,//接收扫描数据
|
||
};
|
||
|
||
|
||
//串口通信结构体
|
||
typedef struct
|
||
{
|
||
u16 send_len; //记录发送的总长度
|
||
u16 send_count; //记录发送的当前位置
|
||
u8 *send_buf; //发送缓冲区首地址
|
||
u8 send_style; //记录发送指令,确定应答接收方式
|
||
s8 rev_ack_flag; //接收状态标志位
|
||
u8 ble_rcv_flag; //蓝牙接收到透传数据
|
||
u8 ble_rev_buf[BLE_UP_BUF_SIZE];
|
||
u16 ble_rcv_len;
|
||
// u16 rev_len; //蓝牙接收数据长度
|
||
} BLE_UART_COMM;
|
||
|
||
typedef struct
|
||
{
|
||
u8 mac[6]; //MAC地址
|
||
u8 adv_data[11]; //广播数据
|
||
mtype16_ rssi; //信号
|
||
} BLE_SLAVE_INFO, *P_BLE_SLAVE_INFO;
|
||
|
||
//******************************* 外部变量***************************************
|
||
|
||
|
||
|
||
//******************************* 外部接口函数***********************************
|
||
//#define NBUartReceiveIT BleUartReceiveIT
|
||
void BleUartSend(u8 *buf, u16 len, u8 style);
|
||
s8 BleCheckAtAck(void);
|
||
u8 BleUartChkStyle(void);
|
||
void BleUartChangeStyle(u8 style);
|
||
void BleUartReceiveIT(void);
|
||
u8 BleRcvAtData(u8 **p_data);
|
||
|
||
#if BLE_CENTRAL_SLAVE_MOD
|
||
void BleClrMacBuf(void); //清除扫描缓存
|
||
u8 BleGetScanDevInfo(BLE_SLAVE_INFO **p_data);//获取扫描到的设备信息
|
||
u8 BleGetScanCompleteFlag(void);
|
||
void BleClrScanCompleteFlag(void);
|
||
#endif
|
||
|
||
u8 BleRcvFrameDataFlag(void);
|
||
void BleClrRcvFrameDataFlag(void);
|
||
void BleGetUartRcvData(u8 **rev_data,u16 *data_len);
|
||
u8 BleCheckIfResetFlag(void);
|
||
void BleClrIfResetFlag(void);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif /* __BLE_UART_DRIVER_H */
|
||
|