Commit aa1f33e0 by zhanggf

[Debug] SD card and openbciGUI OK.

Signed-off-by: zhanggf <zhanggf@example.com>
parent ad0e6a3c
...@@ -10,10 +10,13 @@ ...@@ -10,10 +10,13 @@
#include "cJSON.h" #include "cJSON.h"
#include "myQueue.h" #include "myQueue.h"
#include "cyton_cmd_pub.h"
typedef struct stCytron_DevSeting { typedef struct stCytron_DevSeting {
uint8_t aucRate; int iRate;
uint32_t uiSaveSdCardMs;
uint8_t aucDeviceNum;
uint8_t aucStreamStat; uint8_t aucStreamStat;
} CYTON_DEVSETING_T; } CYTON_DEVSETING_T;
...@@ -23,6 +26,7 @@ static int g_iOpenguiFd = 4; ...@@ -23,6 +26,7 @@ static int g_iOpenguiFd = 4;
static uint8_t g_iOepnguiConnnectStat = 0; static uint8_t g_iOepnguiConnnectStat = 0;
static CYTON_DEVSETING_T g_stCytron_DevSeting; static CYTON_DEVSETING_T g_stCytron_DevSeting;
#if 0
static int Ctron_atoi(uint8_t *szData, int iLen) static int Ctron_atoi(uint8_t *szData, int iLen)
{ {
//0,11:123456711 //0,11:123456711
...@@ -214,21 +218,6 @@ void Ctron_Esp12Data_Recv(int iFD, uint8_t *szData, int iLen) ...@@ -214,21 +218,6 @@ void Ctron_Esp12Data_Recv(int iFD, uint8_t *szData, int iLen)
void Ctron_Esp12Data_Send(int iFD, uint8_t *szData, int iLen, int iClose) void Ctron_Esp12Data_Send(int iFD, uint8_t *szData, int iLen, int iClose)
{ {
uint8_t szCmd[64] = 0;
sprintf(szCmd, "AT+CIPSEND=%d,%d\r\n", iFD, iLen);
/* AT+CIPSEND=<link ID>,<length> */
ESP8266_SendCmd(szCmd, ">", 100);
ESP8266_SendData(szData, iLen);
//delay_ms(20);
if (iClose) {
delay_ms(200);
memset(szCmd, 0, sizeof(szCmd));
sprintf(szCmd, "AT+CIPCLOSE=%d\r\n", iFD);
ESP8266_SendCmd(szCmd, "OK", 50);
}
} }
...@@ -259,6 +248,8 @@ int CytonEsp12_DataGetReportFd() ...@@ -259,6 +248,8 @@ int CytonEsp12_DataGetReportFd()
return g_iOpenguiFd; return g_iOpenguiFd;
} }
#endif
int CytonEsp12_StreamStat() int CytonEsp12_StreamStat()
{ {
return g_stCytron_DevSeting.aucStreamStat; return g_stCytron_DevSeting.aucStreamStat;
...@@ -269,37 +260,122 @@ void CytonEsp12_SetStreamStat(int iStat) ...@@ -269,37 +260,122 @@ void CytonEsp12_SetStreamStat(int iStat)
g_stCytron_DevSeting.aucStreamStat = iStat; g_stCytron_DevSeting.aucStreamStat = iStat;
} }
int CytonEsp12_GetCurrentRate() uint8_t CytonEsp12_GetCurrentRateCmd()
{ {
int iRate = g_stCytron_DevSeting.aucRate; int iRate = g_stCytron_DevSeting.iRate;
int iRet = 1000; uint8_t aucRet = 0;
/*
ADS129X_CMD_250HZ = 0,
ADS129X_CMD_500HZ,
ADS129X_CMD_1000HZ,
ADS129X_CMD_2000HZ,
ADS129X_CMD_4000HZ,
ADS129X_CMD_8000HZ,
*/
switch(iRate) { if (250 == iRate) {
case 0: aucRet = ADS129X_CMD_250HZ;
iRet = 16000; } else if (500 == iRate) {
break; aucRet = ADS129X_CMD_500HZ;
case 1: } else if (1000 == iRate) {
iRet = 8000; aucRet = ADS129X_CMD_1000HZ;
break; } else if (2000 == iRate) {
case 2: aucRet = ADS129X_CMD_2000HZ;
iRet = 4000; } else if (4000 == iRate) {
break; aucRet = ADS129X_CMD_4000HZ;
case 3: } else if (8000 == iRate) {
iRet = 2000; aucRet = ADS129X_CMD_8000HZ;
break;
case 4:
iRet = 1000;
break;
case 5:
iRet = 500;
case 6:
iRet = 250;
break;
default:
break;
} }
return iRet; return aucRet;
}
#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 CytonEsp12_PraseLoop()
{
//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("Find cmd %08x\r\n", toNet32(pstCmdInfo->iType));
ESP8266_DEBUG("Find p1 %08x\r\n", toNet32(pstCmdInfo->uiParam1));
if (toNet32(pstCmdInfo->iType) == CYTON_CMD_HZ) {
g_stCytron_DevSeting.iRate = toNet32(pstCmdInfo->uiParam1);
ESP8266_DEBUG("g_iHz %d\r\n", g_stCytron_DevSeting.iRate);
} else if (toNet32(pstCmdInfo->iType) == CYTON_CMD_SD) {
g_stCytron_DevSeting.uiSaveSdCardMs = toNet32(pstCmdInfo->uiParam1) * 1000;
ESP8266_DEBUG("Save SD command %d \r\n", g_stCytron_DevSeting.uiSaveSdCardMs);
g_stCytron_DevSeting.iRate = 250;
} else if (toNet32(pstCmdInfo->iType) == CYTON_CMD_DEVICE_CONN) {
g_stCytron_DevSeting.aucDeviceNum = toNet32(pstCmdInfo->uiParam1);
ESP8266_DEBUG("Current Device connect number %d S\r\n", g_stCytron_DevSeting.aucDeviceNum);
} else if (toNet32(pstCmdInfo->iType) == CYTON_CMD_START) {
ESP8266_DEBUG("Start collector %d Hz\r\n", g_stCytron_DevSeting.iRate);
if (0 == CytonEsp12_StreamStat()) {
if (g_stCytron_DevSeting.uiSaveSdCardMs > 0) {
CytonSD_Start();
}
ADS129x_ReInit(1, CytonEsp12_GetCurrentRateCmd());
CytonEsp12_SetStreamStat(1);
} else {
ESP8266_DEBUG("Already start collector %d Hz, ignore\r\n", g_stCytron_DevSeting.iRate);
}
} else if (toNet32(pstCmdInfo->iType) == CYTON_CMD_STOP) {
ESP8266_DEBUG("Stop collector\r\n");
CytonEsp12_SetStreamStat(0);
ADS129x_Stop();
if (g_stCytron_DevSeting.uiSaveSdCardMs > 0) {
CytonSD_Stop();
}
}
ESP8266_CLEAR();
break;
}
} else {
break;
}
pszIndex ++;
iLen --;
}
//ESP8266_CLEAR();
}
uint32_t CytonEsp12_GetSDSaveMs()
{
return g_stCytron_DevSeting.uiSaveSdCardMs;
}
uint32_t CytonEsp12_KeySaveSD()
{
if (0 == CytonEsp12_StreamStat()) {
g_stCytron_DevSeting.uiSaveSdCardMs = 300000;
g_stCytron_DevSeting.iRate = 250;
CytonSD_Start();
ADS129x_ReInit(1, CytonEsp12_GetCurrentRateCmd());
CytonEsp12_SetStreamStat(1);
ESP8266_DEBUG("Button start collector %d Hz, ignore\r\n", g_stCytron_DevSeting.iRate);
} else {
ESP8266_DEBUG("Button Stop collector\r\n");
CytonEsp12_SetStreamStat(0);
ADS129x_Stop();
if (g_stCytron_DevSeting.uiSaveSdCardMs > 0) {
CytonSD_Stop();
}
}
} }
...@@ -29,7 +29,11 @@ void Ctron_Esp12Data_Recv(int iFd, uint8_t *szData, int iLen); ...@@ -29,7 +29,11 @@ void Ctron_Esp12Data_Recv(int iFd, uint8_t *szData, int iLen);
void Ctron_Esp12Data_Send(int iFd, uint8_t *szData, int iLen, int iClose); 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(); uint8_t CytonEsp12_GetCurrentRateCmd();
void CytonEsp12_SetStreamStat(int iStat); void CytonEsp12_SetStreamStat(int iStat);
void CytonEsp12_PraseLoop();
uint32_t CytonEsp12_GetSDSaveMs();
uint32_t CytonEsp12_KeySaveSD();
#endif #endif
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#define CYTON_COLLECTOR_DATA_CACHE_LEN (123) #define CYTON_COLLECTOR_DATA_CACHE_LEN (123)
#if 0
static int g_iTimerindex = 0; static int g_iTimerindex = 0;
static int g_iTotalLen = 0; static int g_iTotalLen = 0;
...@@ -125,4 +126,5 @@ void CytonProcess_Loop() ...@@ -125,4 +126,5 @@ void CytonProcess_Loop()
ESP8266_DEBUG("Start Report total %d\n", g_iTotalLen); ESP8266_DEBUG("Start Report total %d\n", g_iTotalLen);
} }
} }
} }
\ No newline at end of file #endif
\ No newline at end of file
#include "Cyton_SD.h"
#include "usart.h"
#include <string.h>
#include "delay.h"
#include "led.h"
#include "key.h"
#include "Timer.h"
#include "ADS129x.h"
#include "adc.h"
#include "fattester.h"
#include "myQueue.h"
static int g_SdInitResult = 0;
static int g_SdIsBusy = 0;
static FIL g_stfile;
static u8 sd_path[] = "0:";
static uint8_t g_aucWriteHeadIndex = 0;
int CytonSD_Init()
{
int iRet = -1;
exfuns_init();
iRet = mf_mount(sd_path, 1);
if (iRet == 0) {
Main_printf("mount end %d Success\r\n", iRet);
mf_showfree("0:");
g_SdInitResult = 1;
} else {
Main_printf("mount end %d failed\r\n", iRet);
}
mf_scan_files("0:");
mf_showfree("0:");
return iRet;
}
int CytonSD_Start()
{
int iLoop = 0;
char szFileName[64] = {0};
char szAbFileName[64] = {0};
int iRet = 0;
char szTmp[16] = {0};
g_aucWriteHeadIndex = 0;
if (1 != g_SdInitResult) {
Main_printf("SD not mount\r\n");
return -1;
}
for (iLoop = 0; iLoop < 256; iLoop ++) {
memset(szFileName, 0, sizeof(szFileName));
sprintf(szFileName, "OPBI_%d.txt", iLoop);
if (0 == mf_scan_fileExist("0:", szFileName)) {
Main_printf("file is not exist, start creat %s\r\n", szFileName);
sprintf(szAbFileName, "0:%s", szFileName);
break;
}
}
iRet = f_open(&g_stfile, szAbFileName, FA_CREATE_NEW | FA_WRITE);
Main_printf("f_open %d\r\n", iRet);
if (0 == iRet) {
sprintf(szTmp, "%08X\n", CytonSys_GetCurrentms());
CytonSD_Write("%STOP AT\n", strlen("%STOP AT\n"));
CytonSD_Write(szTmp, strlen(szTmp));
}
g_SdIsBusy = 1;
f_sync(&g_stfile);
return iRet;
}
int CytonSD_Write(char *szBuf, int iLen)
{
int iRet = -1;
int iWriten = 0;
if (1 != g_SdInitResult) {
return 0;
}
//f_lseek(&file, 1024*1024);
iRet = f_write(&g_stfile, szBuf, iLen, &iWriten);
if (iRet != 0) {
Main_printf("[%d] %d iWriten %d failed\r\n", iRet);
}
//f_sync(&g_stfile);
return iWriten;
}
int CytonSD_WriteChannelData(char *szBuf, int iChannel, int iNum)
{
char szTmp[512] = {0};
int iLoop = 0;
int iOneBufLen = 0;
int iLoopJ = 0;
if (1 != g_SdInitResult) {
return 0;
}
iOneBufLen = iChannel * 7 + 3;
for (;iLoop < iNum; iLoop++) {
g_aucWriteHeadIndex ++;
sprintf((szTmp + iOneBufLen * iLoop), "%02X,", g_aucWriteHeadIndex);
for (iLoopJ = 0; iLoopJ < iChannel; iLoopJ ++) {
sprintf((szTmp + iOneBufLen * iLoop + 3 + iLoopJ * 7), "%02X", *(szBuf + iLoop * iChannel * 3 + iLoopJ * 3));
sprintf((szTmp + iOneBufLen * iLoop + 3 + iLoopJ * 7 + 2), "%02X", *(szBuf + iLoop * iChannel * 3 + iLoopJ * 3 +1));
if (iLoopJ == (iChannel - 1)) {
sprintf((szTmp + iOneBufLen * iLoop + 3 + iLoopJ * 7 + 4), "%02X\n", *(szBuf + iLoop * iChannel * 3 + iLoopJ * 3 + 2));
} else {
sprintf((szTmp + iOneBufLen * iLoop + 3 + iLoopJ * 7 + 4), "%02X,", *(szBuf + iLoop * iChannel * 3 + iLoopJ * 3 + 2));
}
}
}
//printf("szTmp %s ****\n",szTmp);
CytonSD_Write(szTmp, strlen(szTmp));
return 0;
}
int CytonSD_Stop()
{
char szTmp[16] = {0};
if (1 != g_SdInitResult) {
return 0;
}
//sprintf(szTmp, "%08X\n", CytonSys_GetCurrentms());
//CytonSD_Write("%STOP AT\n", strlen("%STOP AT\n"));
//CytonSD_Write(szTmp, strlen(szTmp));
CytonSD_Write("%Total time mS:\n", strlen("%Total time mS:\n"));
CytonSD_Write(szTmp, strlen(szTmp));
CytonSD_Write("%min Write time uS:\n", strlen("%min Write time uS:\n"));
CytonSD_Write(szTmp, strlen(szTmp));
CytonSD_Write("%max Write time uS:\n", strlen("%max Write time uS:\n"));
CytonSD_Write(szTmp, strlen(szTmp));
CytonSD_Write("%Over:\n", strlen("%Over:\n"));
CytonSD_Write(szTmp, strlen(szTmp));
CytonSD_Write("%block, uS\n", strlen("%block, uS\n"));
CytonSD_Write(szTmp, strlen(szTmp));
g_SdIsBusy = 0;
g_aucWriteHeadIndex = 0;
f_close(&g_stfile);
return 0;
}
int CytonSD_GetStatus()
{
return (g_SdInitResult + g_SdIsBusy);
}
\ No newline at end of file
#ifndef __CYTON_SD_H
#define __CYTON_SD_H
#include "sys.h"
#include "myQueue.h"
int CytonSD_Init();
int CytonSD_Start();
int CytonSD_Write(char *szBuf, int iLen);
int CytonSD_WriteChannelData(char *szBuf, int iChannel, int iNum);
int CytonSD_Stop();
#endif
...@@ -8,6 +8,7 @@ typedef enum tagCytonCmd_Type { ...@@ -8,6 +8,7 @@ typedef enum tagCytonCmd_Type {
CYTON_CMD_STOP, CYTON_CMD_STOP,
CYTON_CMD_HZ, CYTON_CMD_HZ,
CYTON_CMD_SD, CYTON_CMD_SD,
CYTON_CMD_DEVICE_CONN,
CYTON_CMD_UNKNOW, /* -5 Read data error */ CYTON_CMD_UNKNOW, /* -5 Read data error */
} CYTON_CMD_TYPE_E; } CYTON_CMD_TYPE_E;
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
static CYTON_SYS_API_TIMER_CB g_pfCollectorTimerCB = NULL; static CYTON_SYS_API_TIMER_CB g_pfCollectorTimerCB = NULL;
static int g_iSysApi_collectorTIndex = 0; static int g_iSysApi_collectorTIndex = 0;
static uint32_t g_uiSysMs = 0;
void CytonSys_CollectorTimerStart(int iHz, CYTON_SYS_API_TIMER_CB pfCB) void CytonSys_CollectorTimerStart(int iHz, CYTON_SYS_API_TIMER_CB pfCB)
...@@ -38,4 +39,28 @@ void CytonSys_CollectorCB() ...@@ -38,4 +39,28 @@ void CytonSys_CollectorCB()
if (g_pfCollectorTimerCB) { if (g_pfCollectorTimerCB) {
(*g_pfCollectorTimerCB)(g_iSysApi_collectorTIndex); (*g_pfCollectorTimerCB)(g_iSysApi_collectorTIndex);
} }
}
void cytonSys_msCB(uint32_t iTimeIndex)
{
g_uiSysMs ++;
}
void CytonSys_StartupTimerInit()
{
int iArr = 0;
g_pfCollectorTimerCB = cytonSys_msCB;
/* 10000 1s CB.*/
iArr = 10;
/* 7200 0000 */
TIM1_Init(iArr, 7200);
TIM1_Start();
}
uint32_t CytonSys_GetCurrentms()
{
return g_uiSysMs;
} }
\ No newline at end of file
...@@ -4,11 +4,14 @@ ...@@ -4,11 +4,14 @@
#include "sys.h" #include "sys.h"
#include "myQueue.h" #include "myQueue.h"
typedef void (*CYTON_SYS_API_TIMER_CB)(int iTimeIndex); typedef void (*CYTON_SYS_API_TIMER_CB)(uint32_t iTimeIndex);
void CytonSys_CollectorTimerStart(int iHz, CYTON_SYS_API_TIMER_CB pfCB); void CytonSys_CollectorTimerStart(int iHz, CYTON_SYS_API_TIMER_CB pfCB);
void CytonSys_Stop(); void CytonSys_Stop();
void CytonSys_CollectorCB(); void CytonSys_CollectorCB();
void CytonSys_StartupTimerInit();
uint32_t CytonSys_GetCurrentms();
#endif #endif
......
...@@ -263,6 +263,31 @@ u32 mf_showfree(u8 *drv) ...@@ -263,6 +263,31 @@ u32 mf_showfree(u8 *drv)
return fre_sect; return fre_sect;
} }
u32 mf_scan_fileExist(u8 *path, u8 *szName)
{
FRESULT res;
int iRet = 0;
res = f_opendir(&dir,(const TCHAR*)path); //打开一个目录
if (res == FR_OK)
{
printf("\r\n");
while(1)
{
res = f_readdir(&dir, &fileinfo); //读取目录下的一个文件
if (res != FR_OK || fileinfo.fname[0] == 0) break; //错误了/到末尾了,退出
//if (fileinfo.fname[0] == '.') continue; //忽略上级目录
if (0 == strcmp(fileinfo.fname, szName)) {
printf("%s/", path);//打印路径
printf("File is Exist %s\r\n", fileinfo.fname);//打印文件名
iRet = 1;
break;
}
}
}
return iRet;
}
/** /**
* @brief 文件读写指针偏移 * @brief 文件读写指针偏移
* *
......
...@@ -48,6 +48,8 @@ void mf_setlabel(u8 *path); ...@@ -48,6 +48,8 @@ void mf_setlabel(u8 *path);
void mf_gets(u16 size); void mf_gets(u16 size);
u8 mf_putc(u8 c); u8 mf_putc(u8 c);
u8 mf_puts(u8*c); u8 mf_puts(u8*c);
u32 mf_scan_fileExist(u8 *drv, u8 *szName);
#endif #endif
......
...@@ -2940,6 +2940,7 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ ...@@ -2940,6 +2940,7 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */
fs->fs_type = 0; /* Clear the file system object */ fs->fs_type = 0; /* Clear the file system object */
fs->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */ fs->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */
printf("disk_initialize\n");
stat = disk_initialize(fs->drv); /* Initialize the physical drive */ stat = disk_initialize(fs->drv); /* Initialize the physical drive */
if (stat & STA_NOINIT) { /* Check if the initialization succeeded */ if (stat & STA_NOINIT) { /* Check if the initialization succeeded */
return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */ return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */
...@@ -3186,8 +3187,10 @@ FRESULT f_mount ( ...@@ -3186,8 +3187,10 @@ FRESULT f_mount (
} }
FatFs[vol] = fs; /* Register new fs object */ FatFs[vol] = fs; /* Register new fs object */
printf("SD 1111 %d opt %d", !fs, opt);
if (!fs || opt != 1) return FR_OK; /* Do not mount now, it will be mounted later */ if (!fs || opt != 1) return FR_OK; /* Do not mount now, it will be mounted later */
printf("SD 222\n");
res = find_volume(&path, &fs, 0); /* Force mounted the volume */ res = find_volume(&path, &fs, 0); /* Force mounted the volume */
LEAVE_FF(fs, res); LEAVE_FF(fs, res);
} }
......
...@@ -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 330 //发送缓冲区 一帧数据长度39一帧`次采样 33*10 99 39*37=1444 #define WIFI_SEND_LENGTH 99 //发送缓冲区 一帧数据长度39一帧`次采样 33*10 99 39*37=1444
#define WIFI_QUEUE_LENGTH (240) //(队列容量)缓冲区有效数据长度24*3=72 24*37 888 #define WIFI_QUEUE_LENGTH (72) //(队列容量)缓冲区有效数据长度24*3=72 24*37 888
#define WIFI_QUEUE_SIZE 20 //队列大小 #define WIFI_QUEUE_SIZE 50 //队列大小
///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////
//发送数据格式 //发送数据格式
typedef struct { typedef struct {
...@@ -46,43 +46,13 @@ extern _WIFI_Info *WIFI_Info ; //上传数据结构 ...@@ -46,43 +46,13 @@ extern _WIFI_Info *WIFI_Info ; //上传数据结构
#define ESP8266_DEBUG(...) #define ESP8266_DEBUG(...)
#endif #endif
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
#define AT "AT\r\n"
#define CWMODE "AT+CWMODE_DEF=1\r\n" //设置STA模式
#define CWAUTOCONN "AT+CWAUTOCONN=1\r\n" //开机进入透传
#define RST "AT+RST\r\n"
#define CIPMUX "AT+CIPMUX=0\r\n" //设置单链接模式,用于透传,开机默认单链接
#define CIFSR "AT+CIFSR\r\n" //查询本地IP地址,只有连上AP后才能查询,返回OK 或者ERR
#define CIPMODE "AT+CIPMODE=1\r\n" //设置透传模式
#define CIPSEND "AT+CIPSEND\r\n" //发送数据,必须开启透传及单链接,换行返回>
//#define ESP_BAUD 460800 //波特率
////#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_BAUD (460800) //(460800) //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,1\r\n" //修改波特率 使能RTS流控 保存到flash
////////////////////////////////////////////////////////////////////////////////
//TCP传输需要手动设置 WIFI名称 密码 IP地址 端口
extern u8 M8266_CWJAP[60]; //连接AP ssid: xxx 密码:xxx
extern u8 M8266_SAVETRANSLINK[60];//保存配网信息
extern u8 ESP8266_SET_FLAG;
s16 ESP8266_SendCmd(u8* cmd, u8* result, u16 timeOut);
s16 ESP8266_SendData(u8* cmd, int iLen);
void ESP8266_IO_Init(void); void ESP8266_IO_Init(void);
void ESP8266_Goto_Cmd(void);
void ESP8266_out_Cmd(void);
void ESP8266_Init(void); void ESP8266_Init(void);
void ESP8266_Config(void);
void ESP8266_SET(void); //配网检测
void Set_WIFI(void);//配网设置
u8 Wifi_Sendbuf_Init(void); u8 Wifi_Sendbuf_Init(void);
......
...@@ -204,7 +204,14 @@ void TIM4_IRQHandler(void) ...@@ -204,7 +204,14 @@ void TIM4_IRQHandler(void)
} }
} }
DS1=!DS1; DS1=!DS1;
if (1 == CytonSD_GetStatus()) {
LED_2 = LED_ON;
} else if (2 == CytonSD_GetStatus()) {
DS2 = !DS2;
}
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);//清中断标志 TIM_ClearITPendingBit(TIM4, TIM_IT_Update);//清中断标志
} }
......
...@@ -99,18 +99,18 @@ void Change_Mode(void) ...@@ -99,18 +99,18 @@ void Change_Mode(void)
if(KEY_TYPE) if(KEY_TYPE)
{ {
//__disable_irq(); //__disable_irq();
delay_s(2); delay_s(1);
LED_2=LED_OFF; LED_2=LED_OFF;
if(KEY_TYPE == KEY_PWR) if(KEY_TYPE == KEY_PWR)
{ {
EXTI->IMR &= ~(ADS129X_DRDY_LINE);//屏蔽外部中断 EXTI->IMR &= ~(ADS129X_DRDY_LINE);//屏蔽外部中断
work_state++; //work_state++;
if(work_state == 4) //if(work_state == 4)
work_state=1; // work_state=1;
CytonEsp12_KeySaveSD();
//printf("切换工作模式\r\n"); printf("切换工作模式 %d\r\n", work_state);
} }
KEY_TYPE=0; KEY_TYPE=0;
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key> <Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U303030303030303030303031 -I0 -O9422 -S1 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO31 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash/STM32F10x_128.FLM)</Name> <Name>-U303030303030303030303031 -I0 -O9422 -S1 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO31 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash/STM32F10x_128.FLM)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
...@@ -178,14 +178,14 @@ ...@@ -178,14 +178,14 @@
<Type>0</Type> <Type>0</Type>
<LineNumber>72</LineNumber> <LineNumber>72</LineNumber>
<EnabledFlag>1</EnabledFlag> <EnabledFlag>1</EnabledFlag>
<Address>134234958</Address> <Address>134233810</Address>
<ByteObject>0</ByteObject> <ByteObject>0</ByteObject>
<HtxType>0</HtxType> <HtxType>0</HtxType>
<ManyObjects>0</ManyObjects> <ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject> <SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess> <BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount> <BreakIfRCount>1</BreakIfRCount>
<Filename>C:\Users\Peiki\Desktop\DINGZHI\ADS1299 V2.1\2021-07-11 STM32F103C8 2.3.3锛堝彂璐у浐浠讹級浼樺寲椹卞姩绋嬪簭 閰嶅ADS1299 2.1.0\Hardware\hc05.c</Filename> <Filename>..\Hardware\hc05.c</Filename>
<ExecCommand></ExecCommand> <ExecCommand></ExecCommand>
<Expression>\\STM32F103C8T6\../Hardware/hc05.c\72</Expression> <Expression>\\STM32F103C8T6\../Hardware/hc05.c\72</Expression>
</Bp> </Bp>
...@@ -194,17 +194,33 @@ ...@@ -194,17 +194,33 @@
<Type>0</Type> <Type>0</Type>
<LineNumber>74</LineNumber> <LineNumber>74</LineNumber>
<EnabledFlag>1</EnabledFlag> <EnabledFlag>1</EnabledFlag>
<Address>134234970</Address> <Address>134233830</Address>
<ByteObject>0</ByteObject> <ByteObject>0</ByteObject>
<HtxType>0</HtxType> <HtxType>0</HtxType>
<ManyObjects>0</ManyObjects> <ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject> <SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess> <BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount> <BreakIfRCount>1</BreakIfRCount>
<Filename>C:\Users\Peiki\Desktop\DINGZHI\ADS1299 V2.1\2021-07-11 STM32F103C8 2.3.3锛堝彂璐у浐浠讹級浼樺寲椹卞姩绋嬪簭 閰嶅ADS1299 2.1.0\Hardware\hc05.c</Filename> <Filename>..\Hardware\hc05.c</Filename>
<ExecCommand></ExecCommand> <ExecCommand></ExecCommand>
<Expression>\\STM32F103C8T6\../Hardware/hc05.c\74</Expression> <Expression>\\STM32F103C8T6\../Hardware/hc05.c\74</Expression>
</Bp> </Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>217</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134226424</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\STM32F103C8T6\main.c\217</Expression>
</Bp>
</Breakpoint> </Breakpoint>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>
...@@ -1015,6 +1031,19 @@ ...@@ -1015,6 +1031,19 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>56</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Cyton\Cyton_SD.c</PathWithFileName>
<FilenameWithoutPath>Cyton_SD.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
...@@ -1025,7 +1054,7 @@ ...@@ -1025,7 +1054,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>56</FileNumber> <FileNumber>57</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus> <Focus>0</Focus>
......
...@@ -671,7 +671,7 @@ ...@@ -671,7 +671,7 @@
<RVCTZI>0</RVCTZI> <RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData> <RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection> <ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild> <IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild> <AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile> <GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile> <AssembleAssemblyFile>2</AssembleAssemblyFile>
...@@ -739,7 +739,7 @@ ...@@ -739,7 +739,7 @@
<RVCTZI>0</RVCTZI> <RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData> <RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection> <ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild> <IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild> <AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile> <GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile> <AssembleAssemblyFile>2</AssembleAssemblyFile>
...@@ -853,6 +853,11 @@ ...@@ -853,6 +853,11 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\Cyton\cyton_cmd_pub.c</FilePath> <FilePath>..\Cyton\cyton_cmd_pub.c</FilePath>
</File> </File>
<File>
<FileName>Cyton_SD.c</FileName>
<FileType>1</FileType>
<FilePath>..\Cyton\Cyton_SD.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