#include "HCBle.h"

// 外部变量引入区
extern   UART_HandleTypeDef huart1;

/*
变量定义区
*/
char HC_Send_Data[128];
uint8_t HC_Recevie[RX_DataSize]; // 蓝牙接收缓存
volatile uint16_t rx_index = 0; //作为接收字符串指针
volatile uint8_t data_received = 0;  // 0 --- 未接收    1 --- 接收

uint8_t  rx_data;    //接收字符


// 发送数据
void HCBle_SendData(char *p,...)
{
	va_list ap;
	va_start(ap,p);
	vsprintf(HC_Send_Data,p,ap);
	va_end(ap);
// 编译控制
#ifdef DEBUG_EN
	//  信息输出接口
	HAL_UART_Transmit(&huart1,(uint8_t *)HC_Send_Data,strlen(HC_Send_Data),1);
// HAL_UART_Transmi(&huart1,(uint8_t *)formatBuf,strlen(formatBuf),1);
// 对于没有使用中断的串口发送，是需要加入一个阻塞的 
#endif	
	
}
// 对于发送数据 可以加入一个DMA




// 蓝牙数据接收
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart->Instance == USART1)
	{
		if(rx_data == '\n')
		{
			if(rx_index > 0)
			{
				HC_Recevie[rx_index] = '\0';
				data_received = 1;
				rx_index = 0;  //我认为接收完字符串后 把字符传给别的处理后 需要清除这里的字符串 memset
			}else if(rx_index < RX_DataSize - 1)
			{
				
			}else
			{
				rx_index = 0; //缓冲区溢出，重置
				memset(HC_Recevie,'\0',RX_DataSize);
			}
		}
		
		HAL_UART_Receive_IT(huart,&rx_data,1);
	}
}



// 接下来就是定义 Json数据处理 以及 发送数据给手机App


