Commit ad0e6a3c by zhanggf

[Cyton] 500hz wifi debug ok.

Signed-off-by: zhanggf <zhanggf@example.com>
parent d272b692
Output/*
*.o
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
"esp8266.h": "c", "esp8266.h": "c",
"usart.h": "c", "usart.h": "c",
"cyton_process.h": "c", "cyton_process.h": "c",
"cyton_datapkg.h": "c" "cyton_datapkg.h": "c",
"ADS129x.C": "cpp",
"ADS129x.H": "cpp"
} }
} }
\ No newline at end of file
...@@ -30,7 +30,7 @@ _ADS129x_info ADS129x_info;//芯片结构 ...@@ -30,7 +30,7 @@ _ADS129x_info ADS129x_info;//芯片结构
#if ADS129X_DEVICE == ADS1299 #if ADS129X_DEVICE == ADS1299
u8 ADS129x_REG_BUF[ADS129X_REGNUM]={ //ads129x寄存器数组 u8 ADS129x_REG_BUF[ADS129X_REGNUM]={ //ads129x寄存器数组
0x3e,//ID ads1299 xx11 1110 0x3e,//ID ads1299 xx11 1110
0xD5,//CONFIG1 1101 0110 关CLK时钟输出 0Xn1 8KSPS 0Xn2 4K 0Xn3 2K 0Xn4 1K 0Xn5 500SPS 0Xn6 250SPS 0xD5,//CONFIG1 1101 0110 关CLK时钟输出 0Xn1 8KSPS 0XD2 4K 0XD3 2K 0XD4 1K 0XD5 500SPS 0XD6 250SPS
0xD0,//CONFIG2 1101 0000 方波幅值(VREFP–VREFN)/2400=±3.75mV 增益24 实际测到的电压±90mV 权值 4500000uV/8838606 = 0.537uV 0xD0,//CONFIG2 1101 0000 方波幅值(VREFP–VREFN)/2400=±3.75mV 增益24 实际测到的电压±90mV 权值 4500000uV/8838606 = 0.537uV
0xEC,//CONFIG3 1110 110x 开内部基准电压4.5V 开右腿驱动放大器, ,内部1/2vref基准,关闭右腿测量和右腿导联脱落检测 0xEC,//CONFIG3 1110 110x 开内部基准电压4.5V 开右腿驱动放大器, ,内部1/2vref基准,关闭右腿测量和右腿导联脱落检测
0x00,//LOFF //关闭导联脱落检测相关 0x00,//LOFF //关闭导联脱落检测相关
...@@ -215,9 +215,11 @@ void ADS129x_GPIO_Init(void) ...@@ -215,9 +215,11 @@ void ADS129x_GPIO_Init(void)
ADS129X_RST=1; //取消复位 ADS129X_RST=1; //取消复位
} }
int iIndex = 0;
void EXTI0_IRQHandler(void) void EXTI0_IRQHandler(void)
{ {
int iRet = -3;
if( EXTI->IMR&ADS129X_DRDY_LINE && ADS129X_DRDY==0)//数据接收中断 if( EXTI->IMR&ADS129X_DRDY_LINE && ADS129X_DRDY==0)//数据接收中断
{ {
//__disable_irq(); //__disable_irq();
...@@ -234,9 +236,10 @@ void EXTI0_IRQHandler(void) ...@@ -234,9 +236,10 @@ void EXTI0_IRQHandler(void)
} }
else if(work_state == SEND_WIFI ) else if(work_state == SEND_WIFI )
{ {
if(queue_data_push(WIFI_Info->WIFI_Queue ,ADS129x_info.ads129x_Cache+3 ,ADS129x_info.Ads129x_Data_Move,ADS129x_info.Ads129x_Write_Num))
{ iRet = queue_data_push(WIFI_Info->WIFI_Queue ,ADS129x_info.ads129x_Cache+3 ,ADS129x_info.Ads129x_Data_Move,ADS129x_info.Ads129x_Write_Num);
if(iRet) {
} }
} }
// else if(work_state == WRITE_TF ) // else if(work_state == WRITE_TF )
...@@ -247,6 +250,7 @@ void EXTI0_IRQHandler(void) ...@@ -247,6 +250,7 @@ void EXTI0_IRQHandler(void)
{ {
} }
///////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////
EXTI_ClearITPendingBit(ADS129X_DRDY_LINE); //清除LINE上的中断标志位 EXTI_ClearITPendingBit(ADS129X_DRDY_LINE); //清除LINE上的中断标志位
//__enable_irq(); //__enable_irq();
...@@ -404,11 +408,24 @@ u8 ADS129x_REG_Init(void) ...@@ -404,11 +408,24 @@ u8 ADS129x_REG_Init(void)
} }
static g_szADS129x_Hz[ADS129X_CMD_UNKNOWN] = {
//0XD1 8KSPS 0XD2 4K 0XD3 2K 0XD4 1K 0XD5 500SPS 0XD6 250SPS
0xD6, 0xD5, 0xD4, 0xD3, 0xD2, 0XD1
};
static uint8_t aDS129x_getHz(int iHz)
{
if (iHz >= ADS129X_CMD_UNKNOWN) {
iHz = ADS129X_CMD_8000HZ;
}
return g_szADS129x_Hz[iHz];
}
//初始化 //初始化
//输入cmd: 0蓝牙或串口发送 / 1 wifi发送/ 2 TF卡存储 //输入cmd: 0蓝牙或串口发送 / 1 wifi发送/ 2 TF卡存储
void ADS129x_ReInit(u8 cmd) void ADS129x_ReInit(u8 cmd, int iHz)
{ {
u8 res; u8 res;
u8 RL_temp=0; u8 RL_temp=0;
...@@ -422,6 +439,13 @@ void ADS129x_ReInit(u8 cmd) ...@@ -422,6 +439,13 @@ void ADS129x_ReInit(u8 cmd)
ADS129x_REG_BUF[13] = RL_temp; //设置右腿驱动 ADS129x_REG_BUF[13] = RL_temp; //设置右腿驱动
ADS129x_REG_BUF[14] = RL_temp; ADS129x_REG_BUF[14] = RL_temp;
//初始化129X
#if ADS129X_DEVICE == ADS1299
ADS129x_REG_BUF[1]= aDS129x_getHz(iHz); //1000采样率
#elif ADS129X_DEVICE == ADS1298
ADS129x_REG_BUF[1]=0x85; //1000采样率
#endif
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
while(ADS129x_REG_Init())//初始化寄存器 while(ADS129x_REG_Init())//初始化寄存器
{ {
...@@ -455,10 +479,14 @@ void ADS129x_ReInit(u8 cmd) ...@@ -455,10 +479,14 @@ void ADS129x_ReInit(u8 cmd)
//ADS129x_info.Ads129x_Write_Num = SD_QUEUE_LENGTH/ADS129x_info.Ads129x_Data_Move ; //搬运N次做一个包 //ADS129x_info.Ads129x_Write_Num = SD_QUEUE_LENGTH/ADS129x_info.Ads129x_Data_Move ; //搬运N次做一个包
//Main_printf("搬运 %d 次做一个包\r\n",ADS129x_info.Ads129x_Write_Num); //Main_printf("搬运 %d 次做一个包\r\n",ADS129x_info.Ads129x_Write_Num);
} }
}
EXTI->IMR |= ADS129X_DRDY_LINE;//开DRDY中断
}
void ADS129x_Stop()
{
ADS129x_Send_CMD(ADS129X_STOP);
}
/*功能:把采到的3个字节转成有符号32位数 */ /*功能:把采到的3个字节转成有符号32位数 */
s32 get_volt(u32 num) s32 get_volt(u32 num)
......
...@@ -103,9 +103,20 @@ extern u8 ADS129x_REG_BUF[ADS129X_REGNUM];//ads1299寄存器数组 ...@@ -103,9 +103,20 @@ extern u8 ADS129x_REG_BUF[ADS129X_REGNUM];//ads1299寄存器数组
///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////
s32 get_volt(u32 num);//把采到的3个字节转成有符号32位数 s32 get_volt(u32 num);//把采到的3个字节转成有符号32位数
typedef enum tagAds129x_Cmd_Hz {
ADS129X_CMD_250HZ = 0,
ADS129X_CMD_500HZ,
ADS129X_CMD_1000HZ,
ADS129X_CMD_2000HZ,
ADS129X_CMD_4000HZ,
ADS129X_CMD_8000HZ,
ADS129X_CMD_UNKNOWN,
} ADS129X_CMD_HZ_E;
void ADS129x_GPIO_Init(void); //初始化ADS1292引脚 void ADS129x_GPIO_Init(void); //初始化ADS1292引脚
void ADS129x_ReInit(u8 cmd);//重复初始化 void ADS129x_ReInit(u8 cmd, int iHz);//重复初始化
u8 ADS129x_SPI_ReadWriteByte(u8 com); //SPI通信 u8 ADS129x_SPI_ReadWriteByte(u8 com); //SPI通信
void ADS129x_Stop();
__INLINE void ADS129x_Read_Data(void);//72M时钟下函数耗时大约10us 8M时钟下 函数耗时大约 100us __INLINE void ADS129x_Read_Data(void);//72M时钟下函数耗时大约10us 8M时钟下 函数耗时大约 100us
......
...@@ -264,6 +264,11 @@ int CytonEsp12_StreamStat() ...@@ -264,6 +264,11 @@ int CytonEsp12_StreamStat()
return g_stCytron_DevSeting.aucStreamStat; return g_stCytron_DevSeting.aucStreamStat;
} }
void CytonEsp12_SetStreamStat(int iStat)
{
g_stCytron_DevSeting.aucStreamStat = iStat;
}
int CytonEsp12_GetCurrentRate() int CytonEsp12_GetCurrentRate()
{ {
int iRate = g_stCytron_DevSeting.aucRate; int iRate = g_stCytron_DevSeting.aucRate;
......
...@@ -30,5 +30,6 @@ void Ctron_Esp12Data_Send(int iFd, uint8_t *szData, int iLen, int iClose); ...@@ -30,5 +30,6 @@ void Ctron_Esp12Data_Send(int iFd, uint8_t *szData, int iLen, int iClose);
int CytonEsp12_DataGetReportFd(); int CytonEsp12_DataGetReportFd();
int CytonEsp12_StreamStat(); int CytonEsp12_StreamStat();
int CytonEsp12_GetCurrentRate(); int CytonEsp12_GetCurrentRate();
void CytonEsp12_SetStreamStat(int iStat);
#endif #endif
...@@ -12,7 +12,10 @@ ...@@ -12,7 +12,10 @@
#include "myQueue.h" #include "myQueue.h"
#define CYTON_COLLECTOR_DATA_CACHE_LEN (4096) #define CYTON_COLLECTOR_DATA_CACHE_LEN (123)
static int g_iTimerindex = 0;
static int g_iTotalLen = 0;
typedef struct stCyton_DataCacheInfo { typedef struct stCyton_DataCacheInfo {
uint8_t DataCache[CYTON_COLLECTOR_DATA_CACHE_LEN + 1]; uint8_t DataCache[CYTON_COLLECTOR_DATA_CACHE_LEN + 1];
...@@ -69,6 +72,7 @@ void CytonProcess_TimerCollCB(int iTIndex) ...@@ -69,6 +72,7 @@ void CytonProcess_TimerCollCB(int iTIndex)
{ {
int iRet = 0; int iRet = 0;
uint32_t puiChannel[8]; uint32_t puiChannel[8];
g_iTimerindex = iTIndex;
//ESP8266_DEBUG("CytonProcess_TimerCollCB %d\n", iTIndex); //ESP8266_DEBUG("CytonProcess_TimerCollCB %d\n", iTIndex);
iRet = Cyton_DataFormat2Package(&g_stCyton_DataCache.DataCache[g_stCyton_DataCache.iWriteIndex], puiChannel, CYTON_DATA_PKG_CHANNEL8); iRet = Cyton_DataFormat2Package(&g_stCyton_DataCache.DataCache[g_stCyton_DataCache.iWriteIndex], puiChannel, CYTON_DATA_PKG_CHANNEL8);
...@@ -107,13 +111,18 @@ void CytonProcess_Loop() ...@@ -107,13 +111,18 @@ void CytonProcess_Loop()
iFd = CytonEsp12_DataGetReportFd(); iFd = CytonEsp12_DataGetReportFd();
iStreamStat = CytonEsp12_StreamStat(); iStreamStat = CytonEsp12_StreamStat();
if (iFd >= 0 && iStreamStat) { if (iStreamStat) {
pszSendBuf = cyton_getUnsendData(&iSendBufLen); pszSendBuf = cyton_getUnsendData(&iSendBufLen);
if (NULL != pszSendBuf) { if (NULL != pszSendBuf) {
ESP8266_DEBUG("Start Report Data %d\n", iSendBufLen); g_iTotalLen += iSendBufLen;
Ctron_Esp12Data_Send(iFd, pszSendBuf, iSendBufLen, 0); ESP8266_SendData(pszSendBuf, iSendBufLen);
ESP8266_DEBUG("Start Report Data End\n"); // ESP8266_SendData(iFd, pszSendBuf, iSendBufLen, 0);
ESP8266_DEBUG("Start Report Data iSendBufLen %d\n", iSendBufLen);
cyton_setSendDataDone(iSendBufLen); cyton_setSendDataDone(iSendBufLen);
} }
if (g_iTimerindex % 1000 == 0) {
ESP8266_DEBUG("Start Report total %d\n", g_iTotalLen);
}
} }
} }
\ No newline at end of file
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cyton_cmd_pub.h"
#include "cJSON.h"
#ifdef ESP_8266
typedef struct stCytron_DevSeting {
unsigned char aucRate;
unsigned char aucStreamStat;
} CYTON_DEVSETING_T;
static CYTON_DEVSETING_T g_stCytron_DevSeting;
static int g_iOpenguiPort = -1;
static char g_szOpenguiIP[16] = {0};
static char g_szCmdBuf[64] = {0};
#define toNet32(A) ((( (unsigned int)(A) & 0xff000000) >> 24) | \
(( (unsigned int)(A) & 0x00ff0000) >> 8) | \
(( (unsigned int)(A) & 0x0000ff00) << 8) | \
(( (unsigned int)(A) & 0x000000ff) << 24))
static int Ctron_atoi(char *szData, int iLen)
{
//0,11:123456711
unsigned char szTmp[4] = {0};
if (iLen > 4) {
return -1;
}
strncpy((char *)szTmp, (char *)szData, iLen);
return atoi((char *)szTmp);
}
int Cyton_GetCurrentRate(int iRate)
{
int iRet = 1000;
switch(iRate) {
case 0:
iRet = 16000;
break;
case 1:
iRet = 8000;
break;
case 2:
iRet = 4000;
break;
case 3:
iRet = 2000;
break;
case 4:
iRet = 1000;
break;
case 5:
iRet = 500;
case 6:
iRet = 250;
break;
default:
break;
}
return iRet;
}
/*
A = 5MIN
S = 15MIN
F = 30MIN
G = 1HR
H = 2HR
J = 4HR
K = 12HR
L = 24HR
*/
static int ctron_GetRate(char *szData, int iLen)
{
char *pszIndex = NULL;
int iRate = 0;
int iRateHz = 0;
int iSDSec = -1;
pszIndex = strstr((char *)szData, "~");
if (NULL != pszIndex) {
iRate = Ctron_atoi(pszIndex + 1, 1);
iRateHz = Cyton_GetCurrentRate(iRate);
return CytonCmd_Pkg(CYTON_CMD_HZ, iRateHz, 0);
} else {
switch (*szData) {
case 'A':
iSDSec = 60 * 5;
break;
case 'S':
iSDSec = 60 * 15;
break;
case 'F':
iSDSec = 60 * 30;
break;
case 'G':
iSDSec = 60 * 60;
break;
case 'H':
iSDSec = 60 * 60 *2;
break;
case 'J':
iSDSec = 60 * 60 * 4;
break;
case 'K':
iSDSec = 60 * 60 * 12;
break;
case 'L':
iSDSec = 60 * 60 * 24;
break;
}
if (iSDSec > 0) {
return CytonCmd_Pkg(CYTON_CMD_SD, iSDSec, 0);
}
}
return -1;
}
int CytonCmd_PraseTcpJson(char *szData, int iLen)
{
//{"connected":true,"delimiter":true,"ip":"192.168.4.2","output":"raw","port":6677,"latency":10000}
cJSON *cjson_data;
cJSON *cjson_str;
int iRet = -1;
char *pszIndex = 0;
pszIndex = strstr((const char *)szData, "{");
if (NULL == pszIndex) {
printf("\r\ntcp json prase failed1111111111: %s\n", szData);
return -1;
}
cjson_data = cJSON_Parse(pszIndex);
if (cjson_data) {
cjson_str = cJSON_GetObjectItem(cjson_data,"ip");
if (cjson_str) {
sprintf(g_szOpenguiIP, "%s", cjson_str->valuestring);
printf("TCP Json g_szOpenguiIP %s\n", g_szOpenguiIP);
}
cjson_str = cJSON_GetObjectItem(cjson_data,"port");
if (cjson_str) {
g_iOpenguiPort = cjson_str->valueint;
printf("TCP Json g_iOpenguiPort %d\n", g_iOpenguiPort);
}
cjson_str = cJSON_GetObjectItem(cjson_data,"command");
if (cjson_str) {
iRet = ctron_GetRate(cjson_str->valuestring, strlen(cjson_str->valuestring));
if (iRet >= 0) {
g_stCytron_DevSeting.aucRate = iRet;
printf("TCP Json g_stCytron_DevSeting.aucRate %d\n", g_stCytron_DevSeting.aucRate);
}
}
printf("Test111");
cJSON_Delete(cjson_data);
printf("Test222");
return 0;
}
return -1;
}
int CytonCmd_Pkg(unsigned int uiCmd, unsigned int uiParam1, unsigned int uiParam2)
{
CYTON_CMD_INFO_T *pstInfo= (CYTON_CMD_INFO_T *)g_szCmdBuf;
pstInfo->uiHead = toNet32(CYTON_CMD_HEAD);
pstInfo->iType = toNet32(uiCmd);
pstInfo->uiParam1 = toNet32(uiParam1);
pstInfo->uiParam2 = toNet32(uiParam2);
return sizeof(CYTON_CMD_INFO_T);
}
char *CytonCmd_GetServerIp()
{
return g_szOpenguiIP;
}
int CytonCmd_GetServerPort()
{
return g_iOpenguiPort;
}
char *CytonCmd_PkgData(int *iLen)
{
*iLen = sizeof(CYTON_CMD_INFO_T);
return g_szCmdBuf;
}
#endif
\ No newline at end of file
#ifndef __CYTON_CMD_PUB_H
#define __CYTON_CMD_PUB_H
#define CYTON_CMD_HEAD (0xfffffffe)
typedef enum tagCytonCmd_Type {
CYTON_CMD_START = 0,
CYTON_CMD_STOP,
CYTON_CMD_HZ,
CYTON_CMD_SD,
CYTON_CMD_UNKNOW, /* -5 Read data error */
} CYTON_CMD_TYPE_E;
#pragma pack(push)
#pragma pack(1)
typedef struct stCytonCmd_Head{
unsigned int uiHead;
unsigned int iType;
unsigned int uiParam1;
unsigned int uiParam2;
} CYTON_CMD_INFO_T;
#pragma pack(pop)
int CytonCmd_Pkg(unsigned int uiCmd, unsigned int uiParam1, unsigned int uiParam2);
int CytonCmd_PraseTcpJson(char *szData, int iLen);
char *CytonCmd_GetServerIp();
int CytonCmd_GetServerPort();
char *CytonCmd_PkgData(int *iLen);
#endif
\ No newline at end of file
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "Cyton_Esp12Data.h" #include "Cyton_Esp12Data.h"
#include "myQueue.h" #include "myQueue.h"
#include "cyton_cmd_pub.h"
...@@ -28,17 +29,17 @@ u8 Wifi_Sendbuf_Init(void) ...@@ -28,17 +29,17 @@ u8 Wifi_Sendbuf_Init(void)
{ {
u16 i; u16 i;
WIFI_Info->datalength = (ADS129X_USE_CANNLE+1)*4 +3;//一次采样要发送的数据长度 39 WIFI_Info->datalength = ADS129X_USE_CANNLE * 3 + 9;//一次采样要发送的数据长度 39
memset(WIFI_Info->sendbuf,0,WIFI_SEND_LENGTH);//清零 memset(WIFI_Info->sendbuf, 0, WIFI_SEND_LENGTH);//清零
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//匿名上位机协议 //匿名上位机协议
for(i=0;i<ADS129x_info.Ads129x_Write_Num;i++) //一包N次采样 for(i=0;i<ADS129x_info.Ads129x_Write_Num;i++) //一包N次采样
{ {
//帧头 //帧头
WIFI_Info->sendbuf[0 + WIFI_Info->datalength*i] = 0xAA; WIFI_Info->sendbuf[0 + WIFI_Info->datalength*i] = 0xA0;
WIFI_Info->sendbuf[1 + WIFI_Info->datalength*i] = 0xFF; //WIFI_Info->sendbuf[1 + WIFI_Info->datalength*i] = 0xFF;
WIFI_Info->sendbuf[2 + WIFI_Info->datalength*i] = 0xF1; //WIFI_Info->sendbuf[2 + WIFI_Info->datalength*i] = 0xF1;
WIFI_Info->sendbuf[3 + WIFI_Info->datalength*i] = ADS129X_USE_CANNLE*4 +1; //有效数据长度 32 +1 = 33 //WIFI_Info->sendbuf[3 + WIFI_Info->datalength*i] = ADS129X_USE_CANNLE*4 +1; //有效数据长度 32 +1 = 33
} }
...@@ -272,37 +273,66 @@ void ESP8266_out_Cmd(void) ...@@ -272,37 +273,66 @@ void ESP8266_out_Cmd(void)
void ESP8266_Config_Http_connectTcp(void); void ESP8266_Config_Http_connectTcp(void);
#define toNet32(A) ((( (unsigned int)(A) & 0xff000000) >> 24)|(( (unsigned int)(A) & 0x00ff0000) >> 8)|(( (unsigned int)(A) & 0x0000ff00) << 8)|(( (unsigned int)(A) & 0x000000ff) << 24))
int g_iHz = 0;
void Cyton_UartPraseLoop()
{
//ESP8266_RX_BUF, ESP8266_RX_LEN,//
CYTON_CMD_INFO_T *pstCmdInfo = NULL;
char *pszIndex = ESP8266_RX_BUF;
int iLen = ESP8266_RX_LEN;
while (iLen > 0) {
if (iLen >= sizeof(CYTON_CMD_INFO_T)) {
pstCmdInfo = (CYTON_CMD_INFO_T *) pszIndex;
if (CYTON_CMD_HEAD == toNet32(pstCmdInfo->uiHead)) {
ESP8266_DEBUG("Fine cmd %08x\r\n", toNet32(pstCmdInfo->iType));
ESP8266_DEBUG("Fine p1 %08x\r\n", toNet32(pstCmdInfo->uiParam1));
ESP8266_DEBUG("Fine p2 %08x\r\n", toNet32(pstCmdInfo->uiParam2));
if (toNet32(pstCmdInfo->iType) == CYTON_CMD_HZ) {
g_iHz = toNet32(pstCmdInfo->uiParam1);
ESP8266_DEBUG("g_iHz %d\r\n", g_iHz);
} else if (toNet32(pstCmdInfo->iType) == CYTON_CMD_START) {
ESP8266_DEBUG("Start collector %d Hz\r\n", g_iHz);
//CytonProcess_TimerCollStart(g_iHz);
ADS129x_ReInit(1, 1);
CytonEsp12_SetStreamStat(1);
} else if (toNet32(pstCmdInfo->iType) == CYTON_CMD_STOP) {
ESP8266_DEBUG("Stop collector\r\n");
CytonEsp12_SetStreamStat(0);
ADS129x_Stop();
//CytonProcess_TimerCollStop();
}
ESP8266_CLEAR();
}
} else {
break;
}
pszIndex ++;
iLen --;
}
//ESP8266_CLEAR();
}
void ESP8266_Init(void) void ESP8266_Init(void)
{ {
//ESP8266_PWOEROFF;
//delay_ms(200);
ESP8266_PWOERON; ESP8266_PWOERON;
delay_s(2); delay_s(2);
// ESP8266_RST=0;
// delay_ms(500);
// ESP8266_RST=1;
// delay_ms(500);
ESP8266_DEBUG("进入AT指令模式1111\r\n"); ESP8266_DEBUG("进入AT指令模式1111\r\n");
ESP8266_DEBUG("默认波特率 %d\r\n",ESP_BAUD); ESP8266_DEBUG("默认波特率 %d\r\n",ESP_BAUD);
ESP8266_uart_init(ESP_BAUD); ESP8266_uart_init(ESP_BAUD);
ESP8266_SendCmd("+++", "OK", 1200);//退出透传 delay_s(2);
if(ESP8266_SendCmd(AT, "OK", 500) >= 0) //模块有效性检查
{
ESP8266_DEBUG("WIFI初始化成功\r\n");
ESP8266_SendCmd(RST, "OK", 500) ;//复位
USART_ITConfig(ESP8266_UART, USART_IT_RXNE, DISABLE);//串口接收中断
//return;
}
else
{
ESP8266_DEBUG("无响应,按照默认参数设置\r\n");
ESP8266_Config();//设置WIFI
}
ESP8266_Config_Http_connectTcp(); //while (0) {
//Cyton_UartPraseLoop();
//CytonProcess_Loop();
//delay_ms(2);
//}
} }
//串口配网 //串口配网
......
...@@ -25,9 +25,9 @@ ...@@ -25,9 +25,9 @@
#define ADS129x_WIFI_REC_EN 0 //WiFi接收使能 #define ADS129x_WIFI_REC_EN 0 //WiFi接收使能
#define WIFI_REC_LENGTH 1460 //接收缓冲区 #define WIFI_REC_LENGTH 1460 //接收缓冲区
//匿名上位机 //匿名上位机
#define WIFI_SEND_LENGTH 1443 //发送缓冲区 一帧数据长度39一帧`次采样 39*37=1444 #define WIFI_SEND_LENGTH 330 //发送缓冲区 一帧数据长度39一帧`次采样 33*10 99 39*37=1444
#define WIFI_QUEUE_LENGTH 888 //(队列容量)缓冲区有效数据长度24*37=888 #define WIFI_QUEUE_LENGTH (240) //(队列容量)缓冲区有效数据长度24*3=72 24*37 888
#define WIFI_QUEUE_SIZE 10 //队列大小 #define WIFI_QUEUE_SIZE 20 //队列大小
///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////
//发送数据格式 //发送数据格式
typedef struct { typedef struct {
...@@ -60,7 +60,7 @@ extern _WIFI_Info *WIFI_Info ; //上传数据结构 ...@@ -60,7 +60,7 @@ extern _WIFI_Info *WIFI_Info ; //上传数据结构
////#define ESP_USARTDEF "AT+UART_DEF=460800,8,1,0,0\r\n" //修改波特率 无流控 保存到flash ////#define ESP_USARTDEF "AT+UART_DEF=460800,8,1,0,0\r\n" //修改波特率 无流控 保存到flash
//#define ESP_USARTDEF "AT+UART_DEF=460800,8,1,0,1\r\n" //修改波特率 使能RTS流控 保存到flash //#define ESP_USARTDEF "AT+UART_DEF=460800,8,1,0,1\r\n" //修改波特率 使能RTS流控 保存到flash
#define ESP_BAUD 921600 //波特率 #define ESP_BAUD (460800) //(460800) //921600 //波特率
//#define ESP_USARTDEF "AT+UART_DEF=921600,8,1,0,0\r\n" //修改波特率 无流控 保存到flash //#define ESP_USARTDEF "AT+UART_DEF=921600,8,1,0,0\r\n" //修改波特率 无流控 保存到flash
#define ESP_USARTDEF "AT+UART_DEF=921600,8,1,0,1\r\n" //修改波特率 使能RTS流控 保存到flash #define ESP_USARTDEF "AT+UART_DEF=921600,8,1,0,1\r\n" //修改波特率 使能RTS流控 保存到flash
......
...@@ -127,8 +127,8 @@ void UART2_DMA_TX_NVIC_Config(u8 cmd) ...@@ -127,8 +127,8 @@ void UART2_DMA_TX_NVIC_Config(u8 cmd)
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel=DMA1_Channel7_IRQn; NVIC_InitStructure.NVIC_IRQChannel=DMA1_Channel7_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1; //抢占优先级 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; //抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1; //子优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; //子优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure); NVIC_Init(&NVIC_InitStructure);
......
...@@ -48,8 +48,8 @@ void mymemset(void *s,u8 c,u32 count) ...@@ -48,8 +48,8 @@ void mymemset(void *s,u8 c,u32 count)
void mem_init(void) void mem_init(void)
{ {
mymemset(mallco_dev.memmap, 0,memtblsize*2);//内存状态表数据清零 mymemset(mallco_dev.memmap, 0,memtblsize*2);//内存状态表数据清零
mymemset(mallco_dev.membase, 0,memsize); //内存池所有数据清零 mymemset(mallco_dev.membase, 0,memsize); //内存池所有数据清零
mallco_dev.memrdy=1; //内存管理初始化OK mallco_dev.memrdy=1; //内存管理初始化OK
} }
//获取内存使用率 //获取内存使用率
//返回值:使用率(0~100) //返回值:使用率(0~100)
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
//内存参数设定. //内存参数设定.
#define MEM_BLOCK_SIZE 32 //内存块大小为32字节 #define MEM_BLOCK_SIZE 32 //内存块大小为32字节
#define MEM_MAX_SIZE 4*1024 //最大管理内存 #define MEM_MAX_SIZE 12*1024 //最大管理内存
#define MEM_ALLOC_TABLE_SIZE MEM_MAX_SIZE/MEM_BLOCK_SIZE //内存表大小 #define MEM_ALLOC_TABLE_SIZE MEM_MAX_SIZE/MEM_BLOCK_SIZE //内存表大小
......
...@@ -175,14 +175,18 @@ void USART2_IRQHandler(void) ...@@ -175,14 +175,18 @@ void USART2_IRQHandler(void)
u8 Res; u8 Res;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾) if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾)
{ {
USART2_TIME=0; // USART2_TIME=0;
Res = USART_ReceiveData(USART2); //读取接收到的数据 Res = USART_ReceiveData(USART2); //读取接收到的数据
USART2_RX_BUF[USART2_RX_LEN] = Res; USART2_RX_BUF[USART2_RX_LEN] = Res;
USART2_RX_LEN++; USART2_RX_LEN++;
if(USART2_RX_LEN == USART_REC_LEN) if(USART2_RX_LEN >= USART_REC_LEN) {
USART2_RX_LEN=0; USART2_RX_LEN=0;
} }
} else {
Res = USART_ReceiveData(USART2);
printf("USART2_RX_ERR\n\n");
}
} }
......
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00010000 { ; load region size_region
ER_IROM1 0x08000000 0x00010000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00005000 { ; RW data
.ANY (+RW +ZI)
}
}
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00010000 { ; load region size_region
ER_IROM1 0x08000000 0x00010000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
.ANY (+XO)
}
RW_IRAM1 0x20000000 0x00005000 { ; RW data
.ANY (+RW +ZI)
}
}
...@@ -933,7 +933,7 @@ ...@@ -933,7 +933,7 @@
<Group> <Group>
<GroupName>CYTON</GroupName> <GroupName>CYTON</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
...@@ -1002,6 +1002,19 @@ ...@@ -1002,6 +1002,19 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>55</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Cyton\cyton_cmd_pub.c</PathWithFileName>
<FilenameWithoutPath>cyton_cmd_pub.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
...@@ -1012,7 +1025,7 @@ ...@@ -1012,7 +1025,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>55</FileNumber> <FileNumber>56</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus> <Focus>0</Focus>
......
...@@ -848,6 +848,11 @@ ...@@ -848,6 +848,11 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\Cyton\Cyton_Process.c</FilePath> <FilePath>..\Cyton\Cyton_Process.c</FilePath>
</File> </File>
<File>
<FileName>cyton_cmd_pub.c</FileName>
<FileType>1</FileType>
<FilePath>..\Cyton\cyton_cmd_pub.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment