/************************************************************************************ * @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 */