Commit aa1f33e0 by zhanggf

[Debug] SD card and openbciGUI OK.

Signed-off-by: zhanggf <zhanggf@example.com>
parent ad0e6a3c
......@@ -10,10 +10,13 @@
#include "cJSON.h"
#include "myQueue.h"
#include "cyton_cmd_pub.h"
typedef struct stCytron_DevSeting {
uint8_t aucRate;
int iRate;
uint32_t uiSaveSdCardMs;
uint8_t aucDeviceNum;
uint8_t aucStreamStat;
} CYTON_DEVSETING_T;
......@@ -23,6 +26,7 @@ static int g_iOpenguiFd = 4;
static uint8_t g_iOepnguiConnnectStat = 0;
static CYTON_DEVSETING_T g_stCytron_DevSeting;
#if 0
static int Ctron_atoi(uint8_t *szData, int iLen)
{
//0,11:123456711
......@@ -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)
{
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()
return g_iOpenguiFd;
}
#endif
int CytonEsp12_StreamStat()
{
return g_stCytron_DevSeting.aucStreamStat;
......@@ -269,37 +260,122 @@ void CytonEsp12_SetStreamStat(int iStat)
g_stCytron_DevSeting.aucStreamStat = iStat;
}
int CytonEsp12_GetCurrentRate()
uint8_t CytonEsp12_GetCurrentRateCmd()
{
int iRate = g_stCytron_DevSeting.aucRate;
int iRet = 1000;
int iRate = g_stCytron_DevSeting.iRate;
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) {
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;
if (250 == iRate) {
aucRet = ADS129X_CMD_250HZ;
} else if (500 == iRate) {
aucRet = ADS129X_CMD_500HZ;
} else if (1000 == iRate) {
aucRet = ADS129X_CMD_1000HZ;
} else if (2000 == iRate) {
aucRet = ADS129X_CMD_2000HZ;
} else if (4000 == iRate) {
aucRet = ADS129X_CMD_4000HZ;
} else if (8000 == iRate) {
aucRet = ADS129X_CMD_8000HZ;
}
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;
default:
}
} else {
break;
}
return iRet;
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);
void Ctron_Esp12Data_Send(int iFd, uint8_t *szData, int iLen, int iClose);
int CytonEsp12_DataGetReportFd();
int CytonEsp12_StreamStat();
int CytonEsp12_GetCurrentRate();
uint8_t CytonEsp12_GetCurrentRateCmd();
void CytonEsp12_SetStreamStat(int iStat);
void CytonEsp12_PraseLoop();
uint32_t CytonEsp12_GetSDSaveMs();
uint32_t CytonEsp12_KeySaveSD();
#endif
......@@ -14,6 +14,7 @@
#define CYTON_COLLECTOR_DATA_CACHE_LEN (123)
#if 0
static int g_iTimerindex = 0;
static int g_iTotalLen = 0;
......@@ -126,3 +127,4 @@ void CytonProcess_Loop()
}
}
}
#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 {
CYTON_CMD_STOP,
CYTON_CMD_HZ,
CYTON_CMD_SD,
CYTON_CMD_DEVICE_CONN,
CYTON_CMD_UNKNOW, /* -5 Read data error */
} CYTON_CMD_TYPE_E;
......
......@@ -12,6 +12,7 @@
static CYTON_SYS_API_TIMER_CB g_pfCollectorTimerCB = NULL;
static int g_iSysApi_collectorTIndex = 0;
static uint32_t g_uiSysMs = 0;
void CytonSys_CollectorTimerStart(int iHz, CYTON_SYS_API_TIMER_CB pfCB)
......@@ -39,3 +40,27 @@ void CytonSys_CollectorCB()
(*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,12 +4,15 @@
#include "sys.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_Stop();
void CytonSys_CollectorCB();
void CytonSys_StartupTimerInit();
uint32_t CytonSys_GetCurrentms();
#endif
......@@ -263,6 +263,31 @@ u32 mf_showfree(u8 *drv)
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 文件读写指针偏移
*
......
......@@ -49,6 +49,8 @@ void mf_gets(u16 size);
u8 mf_putc(u8 c);
u8 mf_puts(u8*c);
u32 mf_scan_fileExist(u8 *drv, u8 *szName);
#endif
......
......@@ -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->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */
printf("disk_initialize\n");
stat = disk_initialize(fs->drv); /* Initialize the physical drive */
if (stat & STA_NOINIT) { /* Check if the initialization succeeded */
return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */
......@@ -3186,8 +3187,10 @@ FRESULT f_mount (
}
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 */
printf("SD 222\n");
res = find_volume(&path, &fs, 0); /* Force mounted the volume */
LEAVE_FF(fs, res);
}
......
......@@ -25,9 +25,9 @@
#define ADS129x_WIFI_REC_EN 0 //WiFi接收使能
#define WIFI_REC_LENGTH 1460 //接收缓冲区
//匿名上位机
#define WIFI_SEND_LENGTH 330 //发送缓冲区 一帧数据长度39一帧`次采样 33*10 99 39*37=1444
#define WIFI_QUEUE_LENGTH (240) //(队列容量)缓冲区有效数据长度24*3=72 24*37 888
#define WIFI_QUEUE_SIZE 20 //队列大小
#define WIFI_SEND_LENGTH 99 //发送缓冲区 一帧数据长度39一帧`次采样 33*10 99 39*37=1444
#define WIFI_QUEUE_LENGTH (72) //(队列容量)缓冲区有效数据长度24*3=72 24*37 888
#define WIFI_QUEUE_SIZE 50 //队列大小
/////////////////////////////////////////////////////////////////////////////////////////////
//发送数据格式
typedef struct {
......@@ -46,43 +46,13 @@ extern _WIFI_Info *WIFI_Info ; //上传数据结构
#define ESP8266_DEBUG(...)
#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_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_Goto_Cmd(void);
void ESP8266_out_Cmd(void);
void ESP8266_Init(void);
void ESP8266_Config(void);
void ESP8266_SET(void); //配网检测
void Set_WIFI(void);//配网设置
u8 Wifi_Sendbuf_Init(void);
......
......@@ -205,6 +205,13 @@ void TIM4_IRQHandler(void)
}
DS1=!DS1;
if (1 == CytonSD_GetStatus()) {
LED_2 = LED_ON;
} else if (2 == CytonSD_GetStatus()) {
DS2 = !DS2;
}
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);//清中断标志
}
......
......@@ -99,18 +99,18 @@ void Change_Mode(void)
if(KEY_TYPE)
{
//__disable_irq();
delay_s(2);
delay_s(1);
LED_2=LED_OFF;
if(KEY_TYPE == KEY_PWR)
{
EXTI->IMR &= ~(ADS129X_DRDY_LINE);//屏蔽外部中断
work_state++;
if(work_state == 4)
work_state=1;
//printf("切换工作模式\r\n");
//work_state++;
//if(work_state == 4)
// work_state=1;
CytonEsp12_KeySaveSD();
printf("切换工作模式 %d\r\n", work_state);
}
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 @@
<SetRegEntry>
<Number>0</Number>
<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>
<Number>0</Number>
......@@ -178,14 +178,14 @@
<Type>0</Type>
<LineNumber>72</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134234958</Address>
<Address>134233810</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<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>
<Expression>\\STM32F103C8T6\../Hardware/hc05.c\72</Expression>
</Bp>
......@@ -194,17 +194,33 @@
<Type>0</Type>
<LineNumber>74</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134234970</Address>
<Address>134233830</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<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>
<Expression>\\STM32F103C8T6\../Hardware/hc05.c\74</Expression>
</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>
<Tracepoint>
<THDelay>0</THDelay>
......@@ -1015,6 +1031,19 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</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>
......@@ -1025,7 +1054,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>56</FileNumber>
<FileNumber>57</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
......
......@@ -671,7 +671,7 @@
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
......@@ -739,7 +739,7 @@
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
......@@ -853,6 +853,11 @@
<FileType>1</FileType>
<FilePath>..\Cyton\cyton_cmd_pub.c</FilePath>
</File>
<File>
<FileName>Cyton_SD.c</FileName>
<FileType>1</FileType>
<FilePath>..\Cyton\Cyton_SD.c</FilePath>
</File>
</Files>
</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