log打印时间戳TMOS_GetSystemClock
This commit is contained in:
parent
65d60c4c23
commit
6e9d7cd7ea
|
@ -45,7 +45,7 @@
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.abi.fp.962468442" name="Floating point ABI" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.abi.fp" useByScannerDiscovery="false" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.abi.fp.none" valueType="enumerated"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.abi.fp.962468442" name="Floating point ABI" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.abi.fp" useByScannerDiscovery="false" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.abi.fp.none" valueType="enumerated"/>
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.codemodel.1234945999" name="Code model" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.codemodel" useByScannerDiscovery="false" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.codemodel.any" valueType="enumerated"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.codemodel.1234945999" name="Code model" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.codemodel" useByScannerDiscovery="false" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.codemodel.any" valueType="enumerated"/>
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.atomic.985553432" name="Atomic extension (RVA)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.atomic" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.atomic.985553432" name="Atomic extension (RVA)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.atomic" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon.1193890948" name="No common unitialized (-fno-common)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon" value="true" valueType="boolean"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon.1193890948" name="No common unitialized (-fno-common)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform.1944008784" isAbstract="false" osList="all" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform"/>
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform.1944008784" isAbstract="false" osList="all" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform"/>
|
||||||
<builder buildPath="${workspace_loc:/BLE_TYQ_CH592F}/obj" id="ilg.gnumcueclipse.managedbuild.cross.riscv.builder.1421508906" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GNU Make 构建器" parallelBuildOn="true" parallelizationNumber="optimal" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.builder"/>
|
<builder buildPath="${workspace_loc:/BLE_TYQ_CH592F}/obj" id="ilg.gnumcueclipse.managedbuild.cross.riscv.builder.1421508906" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GNU Make 构建器" parallelBuildOn="true" parallelizationNumber="optimal" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.builder"/>
|
||||||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.1244756189" name="GNU RISC-V Cross Assembler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler">
|
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.1244756189" name="GNU RISC-V Cross Assembler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler">
|
||||||
|
@ -90,7 +90,7 @@
|
||||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Ld/Link.ld}""/>
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Ld/Link.ld}""/>
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostart.913830613" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostart" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostart.913830613" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostart" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnano.239404511" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnano" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnano.239404511" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnano" useByScannerDiscovery="false" value="false" valueType="boolean"/>
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys.351964161" name="Do not use syscalls (--specs=nosys.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys.351964161" name="Do not use syscalls (--specs=nosys.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.otherobjs.16994550" name="Other objects" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.otherobjs" useByScannerDiscovery="false" valueType="userObjs"/>
|
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.otherobjs.16994550" name="Other objects" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.otherobjs" useByScannerDiscovery="false" valueType="userObjs"/>
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.strip.1780837525" name="Omit all symbol information (-s)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.strip" useByScannerDiscovery="false" value="false" valueType="boolean"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.strip.1780837525" name="Omit all symbol information (-s)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.strip" useByScannerDiscovery="false" value="false" valueType="boolean"/>
|
||||||
|
@ -105,6 +105,8 @@
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printfloat.1191876922" name="Use wchprintfloat(-lprintfloat)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printfloat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printfloat.1191876922" name="Use wchprintfloat(-lprintfloat)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printfloat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other.1168669005" name="Other linker flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other" useByScannerDiscovery="false" value="" valueType="string"/>
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other.1168669005" name="Other linker flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other" useByScannerDiscovery="false" value="" valueType="string"/>
|
||||||
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printf.427785884" name="Use wchprintf(-lprintf)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printf" useByScannerDiscovery="false" value="false" valueType="boolean"/>
|
||||||
|
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.useprintffloat.1247237734" name="Use float with nano printf (-u _printf_float)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.useprintffloat" useByScannerDiscovery="false" value="false" valueType="boolean"/>
|
||||||
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input.1859223768" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input">
|
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input.1859223768" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input">
|
||||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||||
|
@ -172,5 +174,5 @@
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||||
|
<storageModule moduleId="refreshScope"/>
|
||||||
</cproject>
|
</cproject>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
|
encoding//APP/peripheral.c=UTF-8
|
||||||
encoding//BSP/inc/bsp_valve.h=UTF-8
|
encoding//BSP/inc/bsp_valve.h=UTF-8
|
||||||
encoding//BSP/src/bsp_valve.c=UTF-8
|
encoding//BSP/src/bsp_valve.c=UTF-8
|
||||||
encoding//common/letter-shell/extensions/log/log.h=UTF-8
|
encoding//common/letter-shell/extensions/log/log.h=UTF-8
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
* Author : WCH
|
* Author : WCH
|
||||||
* Version : V1.0
|
* Version : V1.0
|
||||||
* Date : 2018/12/10
|
* Date : 2018/12/10
|
||||||
* Description : 外设从机多连接应用程序,初始化广播连接参数,然后广播,连接主机后,
|
* Description : 外设从机多连接应用程序,初始化广播连接参数,然后广播,连接主机后,
|
||||||
* 请求更新连接参数,通过自定义服务传输数据
|
* 请求更新连接参数,通过自定义服务传输数据
|
||||||
*********************************************************************************
|
*********************************************************************************
|
||||||
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
||||||
* Attention: This software (modified or not) and binary are used for
|
* Attention: This software (modified or not) and binary are used for
|
||||||
|
@ -21,14 +21,14 @@
|
||||||
|
|
||||||
#include "bsp_valve.h"
|
#include "bsp_valve.h"
|
||||||
|
|
||||||
|
#include "bsp_uart.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
#undef LOG_ENABLE
|
#undef LOG_ENABLE
|
||||||
#define LOG_ENABLE 1
|
#define LOG_ENABLE 1
|
||||||
|
|
||||||
#undef LOG_TAG
|
#undef LOG_TAG
|
||||||
#define LOG_TAG "BSP_VALVE"
|
#define LOG_TAG "peripheral"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
|
@ -149,7 +149,7 @@ static uint8_t advertData[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
// 蓝牙广播包的最大长度是37个字节,其中设备地址占用了6个字节,只有31个字节是可用的。
|
// 蓝牙广播包的最大长度是37个字节,其中设备地址占用了6个字节,只有31个字节是可用的。
|
||||||
|
|
||||||
// GAP - SCAN RSP data (max size = 31 bytes)
|
// GAP - SCAN RSP data (max size = 31 bytes)
|
||||||
static uint8_t scanRspData[] = {
|
static uint8_t scanRspData[] = {
|
||||||
|
@ -179,18 +179,18 @@ static uint8_t scanRspData[] = {
|
||||||
|
|
||||||
0x03, // length of this data
|
0x03, // length of this data
|
||||||
GAP_ADTYPE_MANUFACTURER_SPECIFIC,
|
GAP_ADTYPE_MANUFACTURER_SPECIFIC,
|
||||||
// 前两个字节表示厂商 ID
|
// 前两个字节表示厂商 ID
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0x10, // 1B 电池电压 30=3V,18=1.8V
|
0x10, // 1B 电池电压 30=3V,18=1.8V
|
||||||
0x01, // 1B 阀门类型
|
0x01, // 1B 阀门类型
|
||||||
0x00, // 1B 阀门工作状态 超欠压、过流
|
0x00, // 1B 阀门工作状态 超欠压、过流
|
||||||
0x00, // 1B 阀门连接状态 (电磁阀BLE控制盒) 0=未连接 1=已连接
|
0x00, // 1B 阀门连接状态 (电磁阀BLE控制盒) 0=未连接 1=已连接
|
||||||
0x01, // 1B 阀门开关状态 0=未知 1=关闭 2=关闭过,未按按键恢复 3=关闭过,按下了恢复键 4=打开
|
0x01, // 1B 阀门开关状态 0=未知 1=关闭 2=关闭过,未按按键恢复 3=关闭过,按下了恢复键 4=打开
|
||||||
0x03, // 1B 阀门温度 有符号整数 25 C
|
0x03, // 1B 阀门温度 有符号整数 25 C
|
||||||
0x04, // 1B 阀门进口压力 0~156 (0)kPa
|
0x04, // 1B 阀门进口压力 0~156 (0)kPa
|
||||||
0x05, // 1B 阀门出口压力 0~100 hPa 0.1kpa
|
0x05, // 1B 阀门出口压力 0~100 hPa 0.1kpa
|
||||||
0x06, // 1B 阀门大气压力 80~110 kPa
|
0x06, // 1B 阀门大气压力 80~110 kPa
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -286,11 +286,11 @@ void Peripheral_Init()
|
||||||
|
|
||||||
// Setup the GAP Peripheral Role Profile
|
// Setup the GAP Peripheral Role Profile
|
||||||
{
|
{
|
||||||
//开启广播使能
|
//开启广播使能
|
||||||
uint8_t initial_advertising_enable = TRUE;
|
uint8_t initial_advertising_enable = TRUE;
|
||||||
//最小连接间隔
|
//最小连接间隔
|
||||||
uint16_t desired_min_interval = DEFAULT_DESIRED_MIN_CONN_INTERVAL;
|
uint16_t desired_min_interval = DEFAULT_DESIRED_MIN_CONN_INTERVAL;
|
||||||
//最大连接间隔
|
//最大连接间隔
|
||||||
uint16_t desired_max_interval = DEFAULT_DESIRED_MAX_CONN_INTERVAL;
|
uint16_t desired_max_interval = DEFAULT_DESIRED_MAX_CONN_INTERVAL;
|
||||||
|
|
||||||
// Set the GAP Role Parameters
|
// Set the GAP Role Parameters
|
||||||
|
@ -309,8 +309,8 @@ void Peripheral_Init()
|
||||||
GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, advInt);
|
GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, advInt);
|
||||||
|
|
||||||
// https://www.cnblogs.com/debugdabiaoge/p/17871551.html
|
// https://www.cnblogs.com/debugdabiaoge/p/17871551.html
|
||||||
// 默认从机在回复扫描请求后,会结束广播事件(默认广播应该是 37 38 39 在 3 个信道轮发)
|
// 默认从机在回复扫描请求后,会结束广播事件(默认广播应该是 37 38 39 在 3 个信道轮发)
|
||||||
// 如下使能后,可以保证广播包不受扫描请求的影响
|
// 如下使能后,可以保证广播包不受扫描请求的影响
|
||||||
// uint16_t adv_event_contnue=1<<1;
|
// uint16_t adv_event_contnue=1<<1;
|
||||||
// GAP_SetParamValue(TGAP_ADV_SCAN_REQ_NOTIFY, adv_event_contnue);
|
// GAP_SetParamValue(TGAP_ADV_SCAN_REQ_NOTIFY, adv_event_contnue);
|
||||||
|
|
||||||
|
@ -452,7 +452,7 @@ uint16_t Peripheral_ProcessEvent(uint8_t task_id, uint16_t events)
|
||||||
if(events & SBP_PHY_UPDATE_EVT)
|
if(events & SBP_PHY_UPDATE_EVT)
|
||||||
{
|
{
|
||||||
// start phy update
|
// start phy update
|
||||||
logDebug("PHY Update %x...\n", GAPRole_UpdatePHY(peripheralConnList.connHandle, 0,
|
logDebug("PHY Update %x...", GAPRole_UpdatePHY(peripheralConnList.connHandle, 0,
|
||||||
GAP_PHY_BIT_LE_2M, GAP_PHY_BIT_LE_2M, 0));
|
GAP_PHY_BIT_LE_2M, GAP_PHY_BIT_LE_2M, 0));
|
||||||
|
|
||||||
return (events ^ SBP_PHY_UPDATE_EVT);
|
return (events ^ SBP_PHY_UPDATE_EVT);
|
||||||
|
@ -785,7 +785,7 @@ static void peripheralChar4Notify(uint8_t *pValue, uint16_t len)
|
||||||
attHandleValueNoti_t noti;
|
attHandleValueNoti_t noti;
|
||||||
if(len > (peripheralMTU - 3))
|
if(len > (peripheralMTU - 3))
|
||||||
{
|
{
|
||||||
logDebug("Too large noti\n");
|
logDebug("Too large noti");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
noti.len = len;
|
noti.len = len;
|
||||||
|
@ -827,8 +827,10 @@ static void simpleProfileChangeCB(uint8_t paramID, uint8_t *pValue, uint16_t len
|
||||||
for (uint8_t i = 0; i < len; i++)
|
for (uint8_t i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
logDebug("%02x ", newValue[i]);
|
logDebug("%02x ", newValue[i]);
|
||||||
|
BSP_UART1_TxLoop();
|
||||||
}
|
}
|
||||||
logDebug("\n profile ChangeCB CHAR1.. End\n");
|
logDebug("\n profile ChangeCB CHAR1.. End\n");
|
||||||
|
BSP_UART1_TxLoop();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -836,42 +838,49 @@ static void simpleProfileChangeCB(uint8_t paramID, uint8_t *pValue, uint16_t len
|
||||||
{
|
{
|
||||||
tmos_memset(newValue, 0, sizeof(newValue));
|
tmos_memset(newValue, 0, sizeof(newValue));
|
||||||
tmos_memcpy(newValue, pValue, len);
|
tmos_memcpy(newValue, pValue, len);
|
||||||
logDebug("profile ChangeCB CHAR3.. Start");
|
logDebug("CHAR3 Start");
|
||||||
// logHexDumpAll(newValue, len);
|
logHexDumpAll(newValue, len);
|
||||||
for (uint8_t i = 0; i < len; i++)
|
// for (uint8_t i = 0; i < len; i++)
|
||||||
{
|
// {
|
||||||
logDebug("%02x ", newValue[i]);
|
// logDebug("%02x ", newValue[i]);
|
||||||
}
|
// }
|
||||||
#if 1
|
#if 1
|
||||||
TsFrameData *HostFrameData = BSP_VAVLE_GetFrameData(newValue, len);
|
TsFrameData *HostFrameData = BSP_VAVLE_GetFrameData(newValue, len);
|
||||||
if (HostFrameData != NULL)
|
if (HostFrameData != NULL)
|
||||||
{
|
{
|
||||||
logHexDumpAll(&HostFrameData->data[0], HostFrameData->len); // 数据段
|
// logHexDumpAll(&HostFrameData->data[0], HostFrameData->len); // 数据段
|
||||||
|
// BSP_UART1_TxLoop();
|
||||||
// HR_ProcessData(HostFrameData);
|
// HR_ProcessData(HostFrameData);
|
||||||
switch (HostFrameData->cmd)
|
switch (HostFrameData->cmd)
|
||||||
{
|
{
|
||||||
case kCmdCfg:
|
case kCmdCfg:
|
||||||
// uint8_t data_buf[64] = {0};
|
// uint8_t data_buf[64] = {0};
|
||||||
// tmos_memset(data_buf, 0, sizeof(data_buf));
|
// tmos_memset(data_buf, 0, sizeof(data_buf));
|
||||||
// 处理数据帧
|
// 处理数据帧
|
||||||
logDebug("kCmdCfg");
|
logDebug("kCmdCfg");
|
||||||
break;
|
break;
|
||||||
case kCmdCloseVavle:
|
case kCmdCloseVavle:
|
||||||
logDebug("kCmdCloseVavle");
|
logDebug("kCmdCloseVavle");
|
||||||
BSP_VALVE_Generate_ValveResponse(&RawData, kCmdCloseVavle, 1);
|
BSP_VALVE_Generate_ValveResponse(&RawData, kCmdCloseVavle, 1);
|
||||||
peripheralChar4Notify((uint8_t*)&RawData.buf[0], RawData.len);
|
peripheralChar4Notify((uint8_t*)&RawData.buf[0], RawData.len);
|
||||||
|
BSP_UART1_TxLoop();
|
||||||
break;
|
break;
|
||||||
case kCmdOpenVavle:
|
case kCmdOpenVavle:
|
||||||
logDebug("kCmdOpenVavle");
|
logDebug("kCmdOpenVavle");
|
||||||
BSP_VALVE_Generate_ValveResponse(&RawData, kCmdOpenVavle, 1);
|
BSP_VALVE_Generate_ValveResponse(&RawData, kCmdOpenVavle, 1);
|
||||||
peripheralChar4Notify((uint8_t*)&RawData.buf[0], RawData.len);
|
peripheralChar4Notify((uint8_t*)&RawData.buf[0], RawData.len);
|
||||||
|
BSP_UART1_TxLoop();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
logError("无效的命令");
|
logError("无效的命令");
|
||||||
// logHexDumpAll(data, len);
|
// logHexDumpAll(data, len);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
logError("数据帧解析失败");
|
||||||
|
}
|
||||||
tmos_msg_deallocate((uint8_t*)HostFrameData);
|
tmos_msg_deallocate((uint8_t*)HostFrameData);
|
||||||
HostFrameData = NULL;
|
HostFrameData = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
* Author : WCH
|
* Author : WCH
|
||||||
* Version : V1.1
|
* Version : V1.1
|
||||||
* Date : 2020/08/06
|
* Date : 2020/08/06
|
||||||
* Description : 外设从机应用主函数及任务系统初始化
|
* Description : 外设从机应用主函数及任务系统初始化
|
||||||
*********************************************************************************
|
*********************************************************************************
|
||||||
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
||||||
* Attention: This software (modified or not) and binary are used for
|
* Attention: This software (modified or not) and binary are used for
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* 头文件包含 */
|
/* 头文件包含 */
|
||||||
#include "CONFIG.h"
|
#include "CONFIG.h"
|
||||||
#include "HAL.h"
|
#include "HAL.h"
|
||||||
#include "gattprofile.h"
|
#include "gattprofile.h"
|
||||||
|
@ -29,6 +29,10 @@
|
||||||
#undef LOG_ENABLE
|
#undef LOG_ENABLE
|
||||||
#define LOG_ENABLE 1
|
#define LOG_ENABLE 1
|
||||||
|
|
||||||
|
#undef LOG_TAG
|
||||||
|
#define LOG_TAG "main"
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
* GLOBAL TYPEDEFS
|
* GLOBAL TYPEDEFS
|
||||||
*/
|
*/
|
||||||
|
@ -41,7 +45,7 @@ const uint8_t MacAddr[6] = {0x84, 0xC2, 0xE4, 0x03, 0x02, 0x02};
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
* @fn Main_Circulation
|
* @fn Main_Circulation
|
||||||
*
|
*
|
||||||
* @brief 主循环
|
* @brief 主循环
|
||||||
*
|
*
|
||||||
* @return none
|
* @return none
|
||||||
*/
|
*/
|
||||||
|
@ -122,7 +126,7 @@ __attribute__((noinline)) void Main_Circulation()
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
* @fn main
|
* @fn main
|
||||||
*
|
*
|
||||||
* @brief 主函数
|
* @brief 主函数
|
||||||
*
|
*
|
||||||
* @return none
|
* @return none
|
||||||
*/
|
*/
|
||||||
|
@ -144,10 +148,11 @@ int main(void)
|
||||||
|
|
||||||
// UART1_DefInit();
|
// UART1_DefInit();
|
||||||
|
|
||||||
// 改成1500000波特率了
|
// 改成 1500000 波特率了
|
||||||
BSP_UART1_Init(460800);
|
BSP_UART1_Init(1500000);
|
||||||
// logDebug("Start @ChipID=%02X\n", R8_CHIP_ID);
|
// logDebug("Start @ChipID=%02X\n", R8_CHIP_ID);
|
||||||
logDebug("Start @ChipID=%02X\n", R8_CHIP_ID);
|
logDebug("Start @ChipID=%02X\n", R8_CHIP_ID);
|
||||||
|
logError("中文测试");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DelayMs(1000 * 3);
|
DelayMs(1000 * 3);
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
|
|
||||||
#include "CONFIG.h"
|
#include "CONFIG.h"
|
||||||
|
|
||||||
#define UART1_RX_BUFFER_LENGTH 64U
|
#define UART1_RX_BUFFER_LENGTH 24
|
||||||
#define UART1_TX_BUFFER_LENGTH 1024U
|
#define UART1_TX_BUFFER_LENGTH 512
|
||||||
|
|
||||||
void BSP_UART1_Init(uint32_t baudrate);
|
void BSP_UART1_Init(uint32_t baudrate);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,14 @@
|
||||||
#include "bsp_adc.h"
|
#include "bsp_adc.h"
|
||||||
|
|
||||||
|
#include "bsp_uart.h"
|
||||||
|
#include "log.h"
|
||||||
|
|
||||||
|
#undef LOG_ENABLE
|
||||||
|
#define LOG_ENABLE 1
|
||||||
|
|
||||||
|
#undef LOG_TAG
|
||||||
|
#define LOG_TAG "adc"
|
||||||
|
|
||||||
// https://www.cnblogs.com/gscw/p/17682385.html
|
// https://www.cnblogs.com/gscw/p/17682385.html
|
||||||
// 计算公式参考手册,建议使用 “建议实际可用测量电压范围” 作为 ADC 采集的增益选择判断标准。计算公式参考手册。
|
// 计算公式参考手册,建议使用 “建议实际可用测量电压范围” 作为 ADC 采集的增益选择判断标准。计算公式参考手册。
|
||||||
// 仅使用 ADC 功能,同时降低功耗,可以将引脚的数字输入功能关闭,配置 R16_PIN_ANALOG_IE。 注:如果引脚用于模拟功能(ADC/TouchKey),建议将该引脚的数字输入功能关闭,即设置数字输入禁用,从而可以降低功耗,并有利于减少干扰。
|
// 仅使用 ADC 功能,同时降低功耗,可以将引脚的数字输入功能关闭,配置 R16_PIN_ANALOG_IE。 注:如果引脚用于模拟功能(ADC/TouchKey),建议将该引脚的数字输入功能关闭,即设置数字输入禁用,从而可以降低功耗,并有利于减少干扰。
|
||||||
|
@ -23,7 +32,7 @@ void BSP_ADC_Init(void)
|
||||||
#if 0
|
#if 0
|
||||||
// ±10C,没啥参考价值
|
// ±10C,没啥参考价值
|
||||||
/* 温度采样并输出 */
|
/* 温度采样并输出 */
|
||||||
PRINT("\n1.Temperature sampling...\n");
|
logDebug("\n1.Temperature sampling...\n");
|
||||||
ADC_InterTSSampInit();
|
ADC_InterTSSampInit();
|
||||||
for (i = 0; i < 20; i++)
|
for (i = 0; i < 20; i++)
|
||||||
{
|
{
|
||||||
|
@ -33,7 +42,7 @@ void BSP_ADC_Init(void)
|
||||||
{
|
{
|
||||||
uint32_t C25 = 0;
|
uint32_t C25 = 0;
|
||||||
C25 = (*((PUINT32)ROM_CFG_TMP_25C));
|
C25 = (*((PUINT32)ROM_CFG_TMP_25C));
|
||||||
PRINT("%d %d %d \n", adc_to_temperature_celsius(adcBuff[i]), adcBuff[i], C25);
|
logDebug("%d %d %d \n", adc_to_temperature_celsius(adcBuff[i]), adcBuff[i], C25);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -56,9 +65,9 @@ void BSP_ADC_Init(void)
|
||||||
min_number = ((min_number > adcBuff[i]) ? adcBuff[i] : min_number); // 软件滤波
|
min_number = ((min_number > adcBuff[i]) ? adcBuff[i] : min_number); // 软件滤波
|
||||||
max_number = ((max_number < adcBuff[i]) ? adcBuff[i] : max_number);
|
max_number = ((max_number < adcBuff[i]) ? adcBuff[i] : max_number);
|
||||||
}
|
}
|
||||||
printf("min_number = %d, max_number = %d\n", min_number, max_number);
|
logDebug("min_number = %d, max_number = %d", min_number, max_number);
|
||||||
CountBat = (CountBat - min_number - max_number) / 18; // 删除最小与最大值
|
CountBat = (CountBat - min_number - max_number) / 18; // 删除最小与最大值
|
||||||
printf("AverageCountBat = %d\n", CountBat);
|
logDebug("AverageCountBat = %d", CountBat);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// 默认情况下,ADC 引脚和所在 GPIO 引脚的数字功能是同时存在的
|
// 默认情况下,ADC 引脚和所在 GPIO 引脚的数字功能是同时存在的
|
||||||
|
@ -75,12 +84,12 @@ void BSP_ADC_Init(void)
|
||||||
ADC_ExtSingleChSampInit(SampleFreq_3_2, ADC_PGA_0);
|
ADC_ExtSingleChSampInit(SampleFreq_3_2, ADC_PGA_0);
|
||||||
|
|
||||||
RoughCalib_Value = ADC_DataCalib_Rough(); // 用于计算ADC内部偏差,记录到全局变量 RoughCalib_Value中
|
RoughCalib_Value = ADC_DataCalib_Rough(); // 用于计算ADC内部偏差,记录到全局变量 RoughCalib_Value中
|
||||||
PRINT("RoughCalib_Value =%d \n", RoughCalib_Value);
|
logDebug("RoughCalib_Value =%d", RoughCalib_Value);
|
||||||
|
|
||||||
// 刚上电,要给电容充电
|
// 刚上电,要给电容充电
|
||||||
DelayMs(300);
|
DelayMs(300);
|
||||||
|
|
||||||
printf("PA13:::::\n");
|
logDebug("PA13:::::");
|
||||||
ADC_ChannelCfg(3);
|
ADC_ChannelCfg(3);
|
||||||
|
|
||||||
for (i = 0; i < 20; i++)
|
for (i = 0; i < 20; i++)
|
||||||
|
@ -88,12 +97,9 @@ void BSP_ADC_Init(void)
|
||||||
adcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value; // 连续采样20次
|
adcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value; // 连续采样20次
|
||||||
// DelayMs(5);
|
// DelayMs(5);
|
||||||
}
|
}
|
||||||
printf("original: ");
|
logDebug("original: ");
|
||||||
for (i = 0; i < 20; i++)
|
logHexDumpAll(adcBuff, 20);
|
||||||
{
|
// 注意:由于ADC内部偏差的存在,当采样电压在所选增益范围极限附近的时候,可能会出现数据溢出的现象
|
||||||
PRINT("%d ", adcBuff[i]); // 注意:由于ADC内部偏差的存在,当采样电压在所选增益范围极限附近的时候,可能会出现数据溢出的现象
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
for (i = 0; i < 20; i++)
|
for (i = 0; i < 20; i++)
|
||||||
{
|
{
|
||||||
|
@ -106,9 +112,9 @@ void BSP_ADC_Init(void)
|
||||||
min_number = ((min_number > adcBuff[i]) ? adcBuff[i] : min_number); // 软件滤波
|
min_number = ((min_number > adcBuff[i]) ? adcBuff[i] : min_number); // 软件滤波
|
||||||
max_number = ((max_number < adcBuff[i]) ? adcBuff[i] : max_number);
|
max_number = ((max_number < adcBuff[i]) ? adcBuff[i] : max_number);
|
||||||
}
|
}
|
||||||
printf("min=%d, max=%d, diff=%d\n", min_number, max_number, (max_number - min_number));
|
logDebug("min=%d, max=%d, diff=%d", min_number, max_number, (max_number - min_number));
|
||||||
countadc = (countadc - min_number - max_number) / 18; // 删除最小与最大值
|
countadc = (countadc - min_number - max_number) / 18; // 删除最小与最大值
|
||||||
printf("countaveradc = %d\n", countadc);
|
logDebug("countaveradc = %d", countadc);
|
||||||
/*
|
/*
|
||||||
int16_t adc_raw;
|
int16_t adc_raw;
|
||||||
adc_raw = ADC_ExcutSingleConver() + RoughCalib_Value;
|
adc_raw = ADC_ExcutSingleConver() + RoughCalib_Value;
|
||||||
|
@ -122,6 +128,6 @@ void BSP_ADC_Init(void)
|
||||||
voltage_mv = adc_raw*1050/4096 + (1050/2);
|
voltage_mv = adc_raw*1050/4096 + (1050/2);
|
||||||
*/
|
*/
|
||||||
voltage = (double)(countadc) / 2048 * 1.05;
|
voltage = (double)(countadc) / 2048 * 1.05;
|
||||||
printf("voltage=%1.3lf V\n", voltage);
|
logDebug("voltage=%1.3lf V", voltage);
|
||||||
PRINT("VIN: %1.3lf V\n", voltage * 2);
|
logDebug("VIN: %1.3lf V", voltage * 2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ unsigned int BSP_Uart1_Send_Data(const void *buf, unsigned int len)
|
||||||
|
|
||||||
ret = lwrb_write(&Uart1Tx, buf, len);
|
ret = lwrb_write(&Uart1Tx, buf, len);
|
||||||
// UART1_INTCfg(ENABLE, RB_IER_THR_EMPTY);
|
// UART1_INTCfg(ENABLE, RB_IER_THR_EMPTY);
|
||||||
|
BSP_UART1_TxLoop();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -110,8 +110,9 @@ TsFrameData* BSP_VAVLE_GetFrameData(uint8_t *data, uint16_t len)
|
||||||
if (len < 4)
|
if (len < 4)
|
||||||
{ // 至少需要 4 个字节:起始码、长度、校验码、结束码
|
{ // 至少需要 4 个字节:起始码、长度、校验码、结束码
|
||||||
logError("数据帧长度不足");
|
logError("数据帧长度不足");
|
||||||
logHexDumpAll(data, len);
|
// logHexDumpAll(data, len);
|
||||||
// return 1;
|
// return 1;
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
while (index < len && data[index] != FRAME_HEADER) // 寻找起始码 0xAA
|
while (index < len && data[index] != FRAME_HEADER) // 寻找起始码 0xAA
|
||||||
{
|
{
|
||||||
|
@ -120,14 +121,16 @@ TsFrameData* BSP_VAVLE_GetFrameData(uint8_t *data, uint16_t len)
|
||||||
if (index >= len - 3) // 不够空间容纳长度、校验码和结束码
|
if (index >= len - 3) // 不够空间容纳长度、校验码和结束码
|
||||||
{
|
{
|
||||||
logError("数据帧起始码错误");
|
logError("数据帧起始码错误");
|
||||||
logHexDumpAll(data, len);
|
// logHexDumpAll(data, len);
|
||||||
|
return NULL;
|
||||||
// return 2;
|
// return 2;
|
||||||
}
|
}
|
||||||
uint16_t data_len = data[index + 2]; // 读取数据长度
|
uint16_t data_len = data[index + 2]; // 读取数据长度
|
||||||
if (index + 3 + data_len + 1 >= len) // 检查数据长度是否合理 数据长度 + 校验码 + 结束码
|
if (index + 3 + data_len + 1 >= len) // 检查数据长度是否合理 数据长度 + 校验码 + 结束码
|
||||||
{
|
{
|
||||||
logError("数据帧长度错误");
|
logError("数据帧长度错误");
|
||||||
logHexDumpAll(data, len);
|
// logHexDumpAll(data, len);
|
||||||
|
return NULL;
|
||||||
// return 3;
|
// return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,13 +139,15 @@ TsFrameData* BSP_VAVLE_GetFrameData(uint8_t *data, uint16_t len)
|
||||||
if (check_sum != calculated_sum)
|
if (check_sum != calculated_sum)
|
||||||
{
|
{
|
||||||
logError("数据帧校验码错误 check_sum = %02X, calculated_sum = %02X", check_sum, calculated_sum);
|
logError("数据帧校验码错误 check_sum = %02X, calculated_sum = %02X", check_sum, calculated_sum);
|
||||||
logHexDumpAll(data, len);
|
// logHexDumpAll(data, len);
|
||||||
|
return NULL;
|
||||||
// return 4;
|
// return 4;
|
||||||
}
|
}
|
||||||
if (data[index + 3 + data_len + 1] != FRAME_TAIL) // 检查结束码
|
if (data[index + 3 + data_len + 1] != FRAME_TAIL) // 检查结束码
|
||||||
{
|
{
|
||||||
logError("数据帧结束码错误");
|
logError("数据帧结束码错误");
|
||||||
logHexDumpAll(data, len);
|
// logHexDumpAll(data, len);
|
||||||
|
return NULL;
|
||||||
// return 5;
|
// return 5;
|
||||||
}
|
}
|
||||||
logDebug("数据帧校验通过");
|
logDebug("数据帧校验通过");
|
||||||
|
@ -195,7 +200,7 @@ uint8_t _GenerateRawFrame(TsRawFrameData *pRawData, uint8_t cmd, const uint8_t *
|
||||||
pRawData->buf[pRawData->len - 2] = CheckSum(&pRawData->buf[0], pRawData->len - 2);
|
pRawData->buf[pRawData->len - 2] = CheckSum(&pRawData->buf[0], pRawData->len - 2);
|
||||||
pRawData->buf[pRawData->len - 1] = FRAME_TAIL;
|
pRawData->buf[pRawData->len - 1] = FRAME_TAIL;
|
||||||
|
|
||||||
logHexDumpAll(&pRawData->buf[0], pRawData->len);
|
// logHexDumpAll(&pRawData->buf[0], pRawData->len);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -210,7 +215,7 @@ void BSP_VALVE_Generate_Data(TsRawFrameData *pRawData, uint8_t bat, int8_t temp,
|
||||||
ValveData.hum = hum; // 阀门湿度 %RH
|
ValveData.hum = hum; // 阀门湿度 %RH
|
||||||
|
|
||||||
_GenerateRawFrame(pRawData, kCmdData, (uint8_t*)&ValveData, sizeof(ValveData));
|
_GenerateRawFrame(pRawData, kCmdData, (uint8_t*)&ValveData, sizeof(ValveData));
|
||||||
logHexDumpAll(&pRawData->buf[0], pRawData->len);
|
// logHexDumpAll(&pRawData->buf[0], pRawData->len);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BSP_VALVE_Generate_ValveResponse(TsRawFrameData *pRawData, TeFrameCmd cmd, uint8_t status)
|
void BSP_VALVE_Generate_ValveResponse(TsRawFrameData *pRawData, TeFrameCmd cmd, uint8_t status)
|
||||||
|
@ -218,7 +223,7 @@ void BSP_VALVE_Generate_ValveResponse(TsRawFrameData *pRawData, TeFrameCmd cmd,
|
||||||
uint8_t data = 0;
|
uint8_t data = 0;
|
||||||
data = status;
|
data = status;
|
||||||
_GenerateRawFrame(pRawData, cmd, &data, 1);
|
_GenerateRawFrame(pRawData, cmd, &data, 1);
|
||||||
logHexDumpAll(&pRawData->buf[0], pRawData->len);
|
// logHexDumpAll(&pRawData->buf[0], pRawData->len);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BSP_CloseValve(void)
|
void BSP_CloseValve(void)
|
||||||
|
|
|
@ -27,7 +27,7 @@ extern "C" {
|
||||||
#define LOG_MAX_NUMBER 5 /**< 允许注册的最大log对象数量 */
|
#define LOG_MAX_NUMBER 5 /**< 允许注册的最大log对象数量 */
|
||||||
#define LOG_AUTO_TAG 1 /**< 是否自动添加TAG */
|
#define LOG_AUTO_TAG 1 /**< 是否自动添加TAG */
|
||||||
#define LOG_END "\r\n" /**< log信息结尾 */
|
#define LOG_END "\r\n" /**< log信息结尾 */
|
||||||
#define LOG_TIME_STAMP 0 /**< 设置获取系统时间戳 */
|
#define LOG_TIME_STAMP TMOS_GetSystemClock() /**< 设置获取系统时间戳 */
|
||||||
|
|
||||||
#ifndef LOG_TAG
|
#ifndef LOG_TAG
|
||||||
#define LOG_TAG __FUNCTION__ /**< 自定添加的TAG */
|
#define LOG_TAG __FUNCTION__ /**< 自定添加的TAG */
|
||||||
|
|
|
@ -185,7 +185,7 @@
|
||||||
* 定义此宏为获取系统Tick,如`HAL_GetTick()`
|
* 定义此宏为获取系统Tick,如`HAL_GetTick()`
|
||||||
* @note 此宏不定义时无法使用双击tab补全命令help,无法使用shell超时锁定
|
* @note 此宏不定义时无法使用双击tab补全命令help,无法使用shell超时锁定
|
||||||
*/
|
*/
|
||||||
#define SHELL_GET_TICK() BSP_Get_Tick()
|
#define SHELL_GET_TICK() TMOS_GetSystemClock()
|
||||||
#endif /** SHELL_GET_TICK */
|
#endif /** SHELL_GET_TICK */
|
||||||
|
|
||||||
#ifndef SHELL_USING_LOCK
|
#ifndef SHELL_USING_LOCK
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
#include "shell.h"
|
#include "shell.h"
|
||||||
|
|
||||||
#define SHELL_BUF_LENGTH 1024
|
#define SHELL_BUF_LENGTH 512
|
||||||
|
|
||||||
extern Shell shell;
|
extern Shell shell;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue