P5UWaterBuXiugang/hardinterface/BLE_driver/inc/ble14531_uart_driver.h

121 lines
3.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/************************************************************************************
* @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 //是否为LPUART10否与下述串口对应
#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 */