Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
Z3dev-AllToOneFanPanel
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
limm
Z3dev-AllToOneFanPanel
Commits
4f2cd626
Commit
4f2cd626
authored
Dec 28, 2020
by
limm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
V1.2
parent
e7d3c114
Changes
19
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
602 additions
and
544 deletions
+602
-544
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvgui.11730
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvgui.11730
+0
-0
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvopt
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvopt
+51
-26
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvproj
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvproj
+2
-2
Code/海顿-多合一新风面板/APP/Nu_Link_Driver.ini
Code/海顿-多合一新风面板/APP/Nu_Link_Driver.ini
+3
-3
Code/海顿-多合一新风面板/APP/User/inc/CC2530_transparent_analyze.h
Code/海顿-多合一新风面板/APP/User/inc/CC2530_transparent_analyze.h
+2
-2
Code/海顿-多合一新风面板/APP/User/inc/Key.h
Code/海顿-多合一新风面板/APP/User/inc/Key.h
+2
-18
Code/海顿-多合一新风面板/APP/User/inc/control_comm.h
Code/海顿-多合一新风面板/APP/User/inc/control_comm.h
+2
-0
Code/海顿-多合一新风面板/APP/User/inc/display_common.h
Code/海顿-多合一新风面板/APP/User/inc/display_common.h
+4
-2
Code/海顿-多合一新风面板/APP/User/inc/mfg_factory.h
Code/海顿-多合一新风面板/APP/User/inc/mfg_factory.h
+2
-2
Code/海顿-多合一新风面板/APP/User/src/CC2530_transparent_analyze.c
Code/海顿-多合一新风面板/APP/User/src/CC2530_transparent_analyze.c
+7
-2
Code/海顿-多合一新风面板/APP/User/src/Key.c
Code/海顿-多合一新风面板/APP/User/src/Key.c
+151
-133
Code/海顿-多合一新风面板/APP/User/src/air_condition.c
Code/海顿-多合一新风面板/APP/User/src/air_condition.c
+50
-110
Code/海顿-多合一新风面板/APP/User/src/control_comm.c
Code/海顿-多合一新风面板/APP/User/src/control_comm.c
+156
-91
Code/海顿-多合一新风面板/APP/User/src/display_common.c
Code/海顿-多合一新风面板/APP/User/src/display_common.c
+29
-15
Code/海顿-多合一新风面板/APP/User/src/mfg_factort.c
Code/海顿-多合一新风面板/APP/User/src/mfg_factort.c
+1
-0
Code/海顿-多合一新风面板/APP/main.c
Code/海顿-多合一新风面板/APP/main.c
+1
-21
Code/海顿-多合一新风面板/Library/StdDriver/src/clk.c
Code/海顿-多合一新风面板/Library/StdDriver/src/clk.c
+25
-3
Code/海顿-多合一新风面板/Library/StdDriver/src/retarget.c
Code/海顿-多合一新风面板/Library/StdDriver/src/retarget.c
+3
-3
Code/海顿-多合一新风面板/Library/StdDriver/src/uart.c
Code/海顿-多合一新风面板/Library/StdDriver/src/uart.c
+111
-111
No files found.
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvgui.11730
View file @
4f2cd626
This source diff could not be displayed because it is too large. You can
view the blob
instead.
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvopt
View file @
4f2cd626
...
@@ -101,7 +101,7 @@
...
@@ -101,7 +101,7 @@
<sRunDeb>
0
</sRunDeb>
<sRunDeb>
0
</sRunDeb>
<sLrtime>
1
</sLrtime>
<sLrtime>
1
</sLrtime>
<bEvRecOn>
1
</bEvRecOn>
<bEvRecOn>
1
</bEvRecOn>
<nTsel>
19
</nTsel>
<nTsel>
7
</nTsel>
<sDll></sDll>
<sDll></sDll>
<sDllPa></sDllPa>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<sDlgDll></sDlgDll>
...
@@ -112,7 +112,7 @@
...
@@ -112,7 +112,7 @@
<tDlgDll></tDlgDll>
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tDlgPa></tDlgPa>
<tIfile></tIfile>
<tIfile></tIfile>
<pMon>
Bin
\Nu_Link.dll
</pMon>
<pMon>
NULink
\Nu_Link.dll
</pMon>
</DebugOpt>
</DebugOpt>
<TargetDriverDllRegistry>
<TargetDriverDllRegistry>
<SetRegEntry>
<SetRegEntry>
...
@@ -140,89 +140,89 @@
...
@@ -140,89 +140,89 @@
<Bp>
<Bp>
<Number>
0
</Number>
<Number>
0
</Number>
<Type>
0
</Type>
<Type>
0
</Type>
<LineNumber>
293
</LineNumber>
<LineNumber>
65
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<EnabledFlag>
1
</EnabledFlag>
<Address>
212
</Address>
<Address>
5624
</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>
..
\Library\StdDriver\src\retarget.c
</Filename>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘
\Library\StdDriver\src\retarget.c
</Filename>
<ExecCommand></ExecCommand>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\../Library/StdDriver/src/retarget.c\
293
</Expression>
<Expression>
\\AllToOneThermostatPannel\../Library/StdDriver/src/retarget.c\
65
</Expression>
</Bp>
</Bp>
<Bp>
<Bp>
<Number>
1
</Number>
<Number>
1
</Number>
<Type>
0
</Type>
<Type>
0
</Type>
<LineNumber>
1
09
</LineNumber>
<LineNumber>
1
218
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<EnabledFlag>
1
</EnabledFlag>
<Address>
27080
</Address>
<Address>
4294
</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>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\User\src\
mfg_factort
.c
</Filename>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\User\src\
display_common
.c
</Filename>
<ExecCommand></ExecCommand>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\User/src/
mfg_factort.c\109
</Expression>
<Expression>
\\AllToOneThermostatPannel\User/src/
display_common.c\1218
</Expression>
</Bp>
</Bp>
<Bp>
<Bp>
<Number>
2
</Number>
<Number>
2
</Number>
<Type>
0
</Type>
<Type>
0
</Type>
<LineNumber>
105
</LineNumber>
<LineNumber>
303
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<EnabledFlag>
1
</EnabledFlag>
<Address>
2
7076
</Address>
<Address>
2
32
</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>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\User\src\mfg_factor
t.c
</Filename>
<Filename>
..\Library\StdDriver\src\retarge
t.c
</Filename>
<ExecCommand></ExecCommand>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\
User/src/mfg_factort.c\105
</Expression>
<Expression>
\\AllToOneThermostatPannel\
../Library/StdDriver/src/retarget.c\303
</Expression>
</Bp>
</Bp>
<Bp>
<Bp>
<Number>
3
</Number>
<Number>
3
</Number>
<Type>
0
</Type>
<Type>
0
</Type>
<LineNumber>
58
0
</LineNumber>
<LineNumber>
11
0
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<EnabledFlag>
1
</EnabledFlag>
<Address>
13540
</Address>
<Address>
26502
</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>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\User\src\
control_comm
.c
</Filename>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\User\src\
mfg_factort
.c
</Filename>
<ExecCommand></ExecCommand>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\User/src/
control_comm.c\58
0
</Expression>
<Expression>
\\AllToOneThermostatPannel\User/src/
mfg_factort.c\11
0
</Expression>
</Bp>
</Bp>
<Bp>
<Bp>
<Number>
4
</Number>
<Number>
4
</Number>
<Type>
0
</Type>
<Type>
0
</Type>
<LineNumber>
690
</LineNumber>
<LineNumber>
53
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<EnabledFlag>
1
</EnabledFlag>
<Address>
24
28
4
</Address>
<Address>
24
64
4
</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>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\
User\src\control_comm
.c
</Filename>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\
main
.c
</Filename>
<ExecCommand></ExecCommand>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\
User/src/control_comm.c\690
</Expression>
<Expression>
\\AllToOneThermostatPannel\
main.c\53
</Expression>
</Bp>
</Bp>
</Breakpoint>
</Breakpoint>
<WatchWindow1>
<WatchWindow1>
<Ww>
<Ww>
<count>
0
</count>
<count>
0
</count>
<WinNumber>
1
</WinNumber>
<WinNumber>
1
</WinNumber>
<ItemText>
Device_status
</ItemText>
<ItemText>
temp1
</ItemText>
</Ww>
</Ww>
<Ww>
<Ww>
<count>
1
</count>
<count>
1
</count>
...
@@ -259,6 +259,31 @@
...
@@ -259,6 +259,31 @@
<WinNumber>
1
</WinNumber>
<WinNumber>
1
</WinNumber>
<ItemText>
static_transprent_buff_mfg
</ItemText>
<ItemText>
static_transprent_buff_mfg
</ItemText>
</Ww>
</Ww>
<Ww>
<count>
8
</count>
<WinNumber>
1
</WinNumber>
<ItemText>
temp1
</ItemText>
</Ww>
<Ww>
<count>
9
</count>
<WinNumber>
1
</WinNumber>
<ItemText>
g_NetOptIndicator[i].offCounter
</ItemText>
</Ww>
<Ww>
<count>
10
</count>
<WinNumber>
1
</WinNumber>
<ItemText>
static_transprent_buff
</ItemText>
</Ww>
<Ww>
<count>
11
</count>
<WinNumber>
1
</WinNumber>
<ItemText>
((SysTick_Type *) ((0xE000E000UL) + 0x0010UL) )
</ItemText>
</Ww>
<Ww>
<count>
12
</count>
<WinNumber>
1
</WinNumber>
<ItemText>
SysTick
</ItemText>
</Ww>
</WatchWindow1>
</WatchWindow1>
<WatchWindow2>
<WatchWindow2>
<Ww>
<Ww>
...
@@ -315,7 +340,7 @@
...
@@ -315,7 +340,7 @@
<MemoryWindow1>
<MemoryWindow1>
<Mm>
<Mm>
<WinNumber>
1
</WinNumber>
<WinNumber>
1
</WinNumber>
<SubType>
0
</SubType>
<SubType>
2
</SubType>
<ItemText>
0x200006BD
</ItemText>
<ItemText>
0x200006BD
</ItemText>
<AccSizeX>
0
</AccSizeX>
<AccSizeX>
0
</AccSizeX>
</Mm>
</Mm>
...
@@ -371,7 +396,7 @@
...
@@ -371,7 +396,7 @@
<Group>
<Group>
<GroupName>
CMSIS
</GroupName>
<GroupName>
CMSIS
</GroupName>
<tvExp>
1
</tvExp>
<tvExp>
0
</tvExp>
<tvExpOptDlg>
0
</tvExpOptDlg>
<tvExpOptDlg>
0
</tvExpOptDlg>
<cbSel>
0
</cbSel>
<cbSel>
0
</cbSel>
<RteFlg>
0
</RteFlg>
<RteFlg>
0
</RteFlg>
...
@@ -403,7 +428,7 @@
...
@@ -403,7 +428,7 @@
<Group>
<Group>
<GroupName>
Library
</GroupName>
<GroupName>
Library
</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>
...
...
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvproj
View file @
4f2cd626
...
@@ -148,7 +148,7 @@
...
@@ -148,7 +148,7 @@
<RestoreSysVw>
1
</RestoreSysVw>
<RestoreSysVw>
1
</RestoreSysVw>
</Target>
</Target>
<RunDebugAfterBuild>
0
</RunDebugAfterBuild>
<RunDebugAfterBuild>
0
</RunDebugAfterBuild>
<TargetSelection>
19
</TargetSelection>
<TargetSelection>
7
</TargetSelection>
<SimDlls>
<SimDlls>
<CpuDll></CpuDll>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<CpuDllArguments></CpuDllArguments>
...
@@ -162,7 +162,7 @@
...
@@ -162,7 +162,7 @@
<PeripheralDll></PeripheralDll>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<InitializationFile></InitializationFile>
<Driver>
Bin
\Nu_Link.dll
</Driver>
<Driver>
NULink
\Nu_Link.dll
</Driver>
</TargetDlls>
</TargetDlls>
</DebugOption>
</DebugOption>
<Utilities>
<Utilities>
...
...
Code/海顿-多合一新风面板/APP/Nu_Link_Driver.ini
View file @
4f2cd626
[Version]
[Version]
Nu_LinkVersion
=
V5.14
Nu_LinkVersion
=
V5.14
[Process]
[Process]
ProcessID
=
0x0000
3f04
ProcessID
=
0x0000
e77c
ProcessCreationTime_L
=
0x
72edddaf
ProcessCreationTime_L
=
0x
cec60db7
ProcessCreationTime_H
=
0x01d6
cd03
ProcessCreationTime_H
=
0x01d6
d90f
NuLinkID
=
0x18101887
NuLinkID
=
0x18101887
NuLinkID0
=
0x18101887
NuLinkID0
=
0x18101887
NuLinkIDs_Count
=
0x00000001
NuLinkIDs_Count
=
0x00000001
...
...
Code/海顿-多合一新风面板/APP/User/inc/CC2530_transparent_analyze.h
View file @
4f2cd626
...
@@ -65,8 +65,8 @@ typedef enum {TP_ERROR = 0, TP_SUCCESS = !TP_ERROR} TP_ErrorStatus;
...
@@ -65,8 +65,8 @@ typedef enum {TP_ERROR = 0, TP_SUCCESS = !TP_ERROR} TP_ErrorStatus;
#define SOF_HIGH_BYTE_DEF 0XAA
#define SOF_HIGH_BYTE_DEF 0XAA
#define SOF_LOW_BYTE_DEF 0X55
#define SOF_LOW_BYTE_DEF 0X55
#define USART_RECIVE_LEN_DEF 4
0
//串口最多一次接受的数据量
#define USART_RECIVE_LEN_DEF 4
8
//串口最多一次接受的数据量
#define USART_RECIVE_DEPTH
3
//缓存的深度
#define USART_RECIVE_DEPTH
12
//缓存的深度
//透传数据接受最大间隔时间,超时未接收到数据,停止一串数据接收
//透传数据接受最大间隔时间,超时未接收到数据,停止一串数据接收
#define DEF_TRANSPARENT_MAXIMUM_INTERVAL 100 //(ms)
#define DEF_TRANSPARENT_MAXIMUM_INTERVAL 100 //(ms)
...
...
Code/海顿-多合一新风面板/APP/User/inc/Key.h
View file @
4f2cd626
...
@@ -43,34 +43,18 @@ typedef uint16_t u16;
...
@@ -43,34 +43,18 @@ typedef uint16_t u16;
typedef
uint8_t
u8
;
typedef
uint8_t
u8
;
typedef
struct
Time_To_Power_Off
{
u8
timekey_start_status
;
//按下定时键
u8
timer_status
;
//定时器开启状态
u8
power_switch_status
;
//开关按键状态
u8
time_data
;
//倒计时时间
u8
set_up_status
;
//进入长按设置状态
u8
set_up_option
;
//设置选项
s8
temperature_correct
;
//温度校准值
s16
temperature_value
;
//实际温度值
u16
temperature_set_value
;
//设定温度值
u8
system_type
;
//系统类型
u8
wind_auto_air_status
;
//风速自动通风状态
u8
lock_status
;
//按键锁定状态
}
TIMEING_INFO
;
typedef
struct
typedef
struct
{
{
volatile
u32
operate_delay_off_ms
;
volatile
u32
operate_delay_off_ms
;
volatile
u32
operate_delay_off_s
;
volatile
u32
operate_delay_off_s
;
volatile
u32
operate_delay_off_min
;
volatile
u32
operate_delay_off_min
;
volatile
u32
operate_delay_off_h
;
volatile
u32
operate_delay_off_h
;
u8
operate_delay_off_display_flag
;
}
Filter_Wash_Calc
;
}
Filter_Wash_Calc
;
typedef
struct
KEY_OPERATE
typedef
struct
KEY_OPERATE
{
{
u8
operate_delay_off_status
;
//延时关机操作期间标志位判断
u8
operate_delay_off_status
;
//延时关机操作期间标志位判断
u8
operate_delay_off_display_flag
;
volatile
u32
operate_delay_off_ms
;
volatile
u32
operate_delay_off_ms
;
volatile
u32
operate_delay_off_s
;
volatile
u32
operate_delay_off_s
;
volatile
u32
operate_delay_off_min
;
volatile
u32
operate_delay_off_min
;
...
...
Code/海顿-多合一新风面板/APP/User/inc/control_comm.h
View file @
4f2cd626
...
@@ -43,12 +43,14 @@ typedef struct Power_Off_Time
...
@@ -43,12 +43,14 @@ typedef struct Power_Off_Time
typedef
struct
typedef
struct
{
{
u8
blacklight_flag
;
u8
blacklight_flag
;
u8
blacklight_display_flag
;
volatile
u32
time_blacklight_ms
;
volatile
u32
time_blacklight_ms
;
volatile
u16
time_blacklight_s
;
volatile
u16
time_blacklight_s
;
}
BACKLIGHT_CONTROL
;
}
BACKLIGHT_CONTROL
;
typedef
struct
typedef
struct
{
{
u8
zigbee_uart_flag
;
u8
zigbee_uart_flag
;
u8
zigbee_uart_display_flag
;
volatile
u32
zigbee_uart_ms
;
volatile
u32
zigbee_uart_ms
;
volatile
u16
zigbee_uart_s
;
volatile
u16
zigbee_uart_s
;
}
ZIGBEE_UART_CONTROL
;
}
ZIGBEE_UART_CONTROL
;
...
...
Code/海顿-多合一新风面板/APP/User/inc/display_common.h
View file @
4f2cd626
...
@@ -54,8 +54,9 @@ typedef struct
...
@@ -54,8 +54,9 @@ typedef struct
u16
screen_save_time
;
//屏保时间 00 代表30
u16
screen_save_time
;
//屏保时间 00 代表30
u16
filter_wash_time
;
//滤网清洗时间 3000
u16
filter_wash_time
;
//滤网清洗时间 3000
u8
no_disturb_mode
;
//勿扰模式 0
u8
no_disturb_mode
;
//勿扰模式 0
u8
air_product_id
;
u8
air_product_id
;
//空调品牌
u8
air_type
;
u8
air_type
;
//空调类型
u8
air_master_slavery_mode
;
//主从模式
}
OLED_AIR_DSD
;
}
OLED_AIR_DSD
;
typedef
struct
typedef
struct
{
{
...
@@ -131,6 +132,7 @@ typedef struct{
...
@@ -131,6 +132,7 @@ typedef struct{
u8
support_function_list
[
6
];
//1,风机盘管管制设置 2,温度校准 3,是否显示当前房间温度设置,4, 超时进入屏保时间设置 10 恢复出厂设置
u8
support_function_list
[
6
];
//1,风机盘管管制设置 2,温度校准 3,是否显示当前房间温度设置,4, 超时进入屏保时间设置 10 恢复出厂设置
volatile
u32
config_time_ms
;
volatile
u32
config_time_ms
;
volatile
u8
config_time_s
;
volatile
u8
config_time_s
;
u8
config_timeout_display
;
}
Local_Config_Operation
;
}
Local_Config_Operation
;
typedef
enum
{
typedef
enum
{
LOCAL_FUNC_FAN_PANEL_SETTING
=
1
,
LOCAL_FUNC_FAN_PANEL_SETTING
=
1
,
...
...
Code/海顿-多合一新风面板/APP/User/inc/mfg_factory.h
View file @
4f2cd626
...
@@ -20,8 +20,8 @@
...
@@ -20,8 +20,8 @@
#define SOF_HIGH_BYTE_DEF 0XAA
#define SOF_HIGH_BYTE_DEF 0XAA
#define SOF_LOW_BYTE_DEF 0X55
#define SOF_LOW_BYTE_DEF 0X55
#define MAX_USART_RECIVE_LEN
56
//串口最多一次接受的数据量
#define MAX_USART_RECIVE_LEN
48
//串口最多一次接受的数据量
#define USART_RECIVE_DEPTHS
3
//缓存的深度
#define USART_RECIVE_DEPTHS
10
//缓存的深度
...
...
Code/海顿-多合一新风面板/APP/User/src/CC2530_transparent_analyze.c
View file @
4f2cd626
...
@@ -50,7 +50,7 @@ static void (*non_permeable_opcode_analysis)(PROTOCOL_DEAL protocol_data);
...
@@ -50,7 +50,7 @@ static void (*non_permeable_opcode_analysis)(PROTOCOL_DEAL protocol_data);
static
void
(
*
transparent_opcode_analysis
)(
PROTOCOL_DEAL
protocol_data
);
static
void
(
*
transparent_opcode_analysis
)(
PROTOCOL_DEAL
protocol_data
);
static
TP_ErrorStatus
transparent_protocol_analysis
(
TP_uc8
*
data
,
TP_uc8
len
);
static
TP_ErrorStatus
transparent_protocol_analysis
(
TP_uc8
*
data
,
TP_uc8
len
);
static
u8
Record_Last_Seq
=
0xFF
;
/**************************************************************************************************************
/**************************************************************************************************************
全局变量,用于 transparent_protocol_send
全局变量,用于 transparent_protocol_send
***************************************************************************************************************/
***************************************************************************************************************/
...
@@ -435,6 +435,7 @@ static TP_u8 Usart_recive_write_buff(TP_uc8 *data,TP_uc16 len)
...
@@ -435,6 +435,7 @@ static TP_u8 Usart_recive_write_buff(TP_uc8 *data,TP_uc16 len)
{
{
//printf("data deal too slow");
//printf("data deal too slow");
static_transprent_buff
.
Download_serial_num
=
rem_serial
;
static_transprent_buff
.
Download_serial_num
=
rem_serial
;
static_transprent_buff
.
Buff_send_serial_num
=
rem_serial
;
return
0
;
return
0
;
}
}
...
@@ -456,7 +457,6 @@ static TP_u8 Usart_recive_write_buff(TP_uc8 *data,TP_uc16 len)
...
@@ -456,7 +457,6 @@ static TP_u8 Usart_recive_write_buff(TP_uc8 *data,TP_uc16 len)
static
TP_ErrorStatus
transparent_protocol_analysis
(
TP_uc8
*
data
,
TP_uc8
len
)
static
TP_ErrorStatus
transparent_protocol_analysis
(
TP_uc8
*
data
,
TP_uc8
len
)
{
{
PROTOCOL_DEAL
Usart_protocol_deal
=
{
0
};
PROTOCOL_DEAL
Usart_protocol_deal
=
{
0
};
if
((
data
==
NULL
)
||
(
len
<
5
)
||
(
len
>
USART_RECIVE_LEN_DEF
))
if
((
data
==
NULL
)
||
(
len
<
5
)
||
(
len
>
USART_RECIVE_LEN_DEF
))
{
{
//printf("non valied msg,discard it all\r\n");
//printf("non valied msg,discard it all\r\n");
...
@@ -464,17 +464,22 @@ static TP_ErrorStatus transparent_protocol_analysis(TP_uc8 *data, TP_uc8 len)
...
@@ -464,17 +464,22 @@ static TP_ErrorStatus transparent_protocol_analysis(TP_uc8 *data, TP_uc8 len)
}
}
Usart_protocol_deal
.
SEQ
=
*
(
data
+
4
);
//记录 seq 的值
Usart_protocol_deal
.
SEQ
=
*
(
data
+
4
);
//记录 seq 的值
if
(
Usart_protocol_deal
.
SEQ
==
Record_Last_Seq
)
return
TP_ERROR
;
if
(
BYTE_MOVE
(
*
(
data
+
len
-
2
),
*
(
data
+
len
-
1
))
!=
CreateCrc16
(
data
+
3
,
len
-
5
))
//CRC校验
if
(
BYTE_MOVE
(
*
(
data
+
len
-
2
),
*
(
data
+
len
-
1
))
!=
CreateCrc16
(
data
+
3
,
len
-
5
))
//CRC校验
{
//校验不对
{
//校验不对
send_crc_error
(
Usart_protocol_deal
.
SEQ
);
send_crc_error
(
Usart_protocol_deal
.
SEQ
);
return
TP_ERROR
;
return
TP_ERROR
;
}
}
Record_Last_Seq
=
Usart_protocol_deal
.
SEQ
;
Usart_protocol_deal
.
Opcode
=
BYTE_MOVE
(
*
(
data
+
7
),
*
(
data
+
8
));
//赋值功能码
Usart_protocol_deal
.
Opcode
=
BYTE_MOVE
(
*
(
data
+
7
),
*
(
data
+
8
));
//赋值功能码
Usart_protocol_deal
.
Channel_ID
=
*
(
data
+
6
);
Usart_protocol_deal
.
Channel_ID
=
*
(
data
+
6
);
Usart_protocol_deal
.
ControlField
=
*
(
data
+
3
);
Usart_protocol_deal
.
ControlField
=
*
(
data
+
3
);
Usart_protocol_deal
.
ARG
=
(
data
+
9
);
Usart_protocol_deal
.
ARG
=
(
data
+
9
);
Usart_protocol_deal
.
ARG_len
=
(
*
(
data
+
2
)
-
6
);
//根据协议,此处应该 data + 2
Usart_protocol_deal
.
ARG_len
=
(
*
(
data
+
2
)
-
6
);
//根据协议,此处应该 data + 2
//DEBUG_USATR1("[cc->stm]RECIVE OPCODE: %16x \r\n",Usart_protocol_deal.Opcode);
//DEBUG_USATR1("[cc->stm]RECIVE OPCODE: %16x \r\n",Usart_protocol_deal.Opcode);
if
((
Usart_protocol_deal
.
ControlField
&
0x80
)
==
0x80
)
//非透传的数据
if
((
Usart_protocol_deal
.
ControlField
&
0x80
)
==
0x80
)
//非透传的数据
...
...
Code/海顿-多合一新风面板/APP/User/src/Key.c
View file @
4f2cd626
...
@@ -24,7 +24,7 @@ KeyConfigInit_t gKey_Button_Config[] = { { 1, P3, BIT6, High},\
...
@@ -24,7 +24,7 @@ KeyConfigInit_t gKey_Button_Config[] = { { 1, P3, BIT6, High},\
};
};
u8
boad_test_falg
[
6
]
=
{
0
,
0
,
0
,
0
,
0
,
0
};
//index 0 - 5分别代表按键1 - 按键6
u8
boad_test_falg
[
6
]
=
{
0
,
0
,
0
,
0
,
0
,
0
};
//index 0 - 5分别代表按键1 - 按键6
KEY_OPERATE
sKey_Operation
[
3
]
=
{
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,{
0
,
0
,
0
,
0
},
0
},{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,{
0
,
0
,
0
,
0
},
0
},{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,{
0
,
0
,
0
,
0
},
0
}
};
KEY_OPERATE
sKey_Operation
[
3
]
=
{
0
};
#if 1
#if 1
TAP_CONTROL_ST
Tap_Control
=
{
6
,{
0
,
0
,
0
,
0
,
0
,
0
},{
0
,
0
,
0
,
0
,
0
,
0
},
0
,
0
}
;
TAP_CONTROL_ST
Tap_Control
=
{
6
,{
0
,
0
,
0
,
0
,
0
,
0
},{
0
,
0
,
0
,
0
,
0
,
0
},
0
,
0
}
;
#else
#else
...
@@ -414,6 +414,7 @@ void KeyProcess_Handler_Callbacks(u8 key_id,u8 KeyPressEvent)
...
@@ -414,6 +414,7 @@ void KeyProcess_Handler_Callbacks(u8 key_id,u8 KeyPressEvent)
if
(
IsLcdEnterScreenSave
())
//息屏状态,触摸按键,该次触发只唤醒,不做有效触发
if
(
IsLcdEnterScreenSave
())
//息屏状态,触摸按键,该次触发只唤醒,不做有效触发
{
{
Reload_Save_Time
();
Reload_Save_Time
();
Detect_Human_Dispaly
();
//cannot delete
return
;
return
;
}
}
Reload_Save_Time
();
Reload_Save_Time
();
...
@@ -537,7 +538,10 @@ void Delay_Power_Off_Control(u8 control_type,u16 flashing_time_ms,u16 flash_inte
...
@@ -537,7 +538,10 @@ void Delay_Power_Off_Control(u8 control_type,u16 flashing_time_ms,u16 flash_inte
{
{
LCDShowTemp_state_t
.
LCD_state
=
FLASHING
;
LCDShowTemp_state_t
.
LCD_state
=
FLASHING
;
if
(
flash_interval_time_ms
)
LCDShowTemp_state_t
.
LCD_display_count
=
flashing_time_ms
/
flash_interval_time_ms
;
//15s
LCDShowTemp_state_t
.
LCD_display_count
=
flashing_time_ms
/
flash_interval_time_ms
;
//15s
else
LCDShowTemp_state_t
.
LCD_display_count
=
0
;
LCDShowTemp_state_t
.
LCD_display_timer
=
flash_interval_time_ms
/
10
;
LCDShowTemp_state_t
.
LCD_display_timer
=
flash_interval_time_ms
/
10
;
}
}
else
else
...
@@ -567,7 +571,8 @@ void Delay_OFF_Rel_Display(u8 stop_flash,u8 delay_timer,u8 dispaly_data,u8 H_cha
...
@@ -567,7 +571,8 @@ void Delay_OFF_Rel_Display(u8 stop_flash,u8 delay_timer,u8 dispaly_data,u8 H_cha
}
}
if
(
H_char
){
if
(
H_char
)
{
//显示H图标
//显示H图标
LCDShowTemp_state_t
.
LCD_place
=
H_CHAR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_place
=
H_CHAR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
...
@@ -612,7 +617,10 @@ void Calib_Temp_Control(u8 control_type,u16 flashing_time_ms,u16 flash_interval_
...
@@ -612,7 +617,10 @@ void Calib_Temp_Control(u8 control_type,u16 flashing_time_ms,u16 flash_interval_
{
{
LCDShowTemp_state_t
.
LCD_state
=
FLASHING
;
LCDShowTemp_state_t
.
LCD_state
=
FLASHING
;
if
(
flash_interval_time_ms
)
LCDShowTemp_state_t
.
LCD_display_count
=
flashing_time_ms
/
flash_interval_time_ms
;
//15s
LCDShowTemp_state_t
.
LCD_display_count
=
flashing_time_ms
/
flash_interval_time_ms
;
//15s
else
LCDShowTemp_state_t
.
LCD_display_count
=
0
;
LCDShowTemp_state_t
.
LCD_display_timer
=
flash_interval_time_ms
/
10
;
LCDShowTemp_state_t
.
LCD_display_timer
=
flash_interval_time_ms
/
10
;
}
}
else
else
...
@@ -1219,41 +1227,42 @@ static void KEY5_Botton_Process_Handler(u8 KeyPressEvent)
...
@@ -1219,41 +1227,42 @@ static void KEY5_Botton_Process_Handler(u8 KeyPressEvent)
//Control_AIR_CONDITION_By_RS485(AIR_CMD_FAN_SPEED,next_speed); //控制空调风速
//Control_AIR_CONDITION_By_RS485(AIR_CMD_FAN_SPEED,next_speed); //控制空调风速
}
}
}
}
else
if
(
Oled_Display_Info
.
Air_Device
.
air_cond_type
==
1
)
//风机盘管,新风只支持3档+自动调节
// else if(Oled_Display_Info.Air_Device.air_cond_type == 1) //风机盘管,新风只支持3档+自动调节
{
// {
if
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_DRY
)
//美的空调,除湿模式下改变风速无效
// if(Oled_Display_Info.Air_Device.system_type != SYSTEM_MODE_DRY) //美的空调,除湿模式下改变风速无效
{
// {
next_speed
=
Get_NextOne_By_Current_Speed_Level
(
1
,
Oled_Display_Info
.
Air_Device
.
wind_speed
,
0
);
// next_speed = Get_NextOne_By_Current_Speed_Level(1,Oled_Display_Info.Air_Device.wind_speed,0);
display_wind_speed
(
next_speed
,
0
);
// display_wind_speed(next_speed,0);
//Oled_Display_Info.Air_Device.wind_speed = next_speed;
// //Oled_Display_Info.Air_Device.wind_speed = next_speed;
//
//Control_AIR_CONDITION_By_RS485(AIR_CMD_FAN_SPEED,Oled_Display_Info.Air_Device.wind_speed); //控制空调风速
// //Control_AIR_CONDITION_By_RS485(AIR_CMD_FAN_SPEED,Oled_Display_Info.Air_Device.wind_speed); //控制空调风速
//
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
// state_change_report(OPCODE_GENERAL_REPORT_STATUS,1); //状态改变通知
}
// }
}
// }
break
;
}
else
if
(
gKey_Press_Info
.
adjust_fan_speed_status
==
2
)
{
u8
speed_direct
=
0
;
speed_direct
=
Get_NextOne_By_Current_wind_direct
(
1
,
Oled_Display_Info
.
Air_Device
.
air_wind_direct
);
switch
(
speed_direct
)
//显示当前风向
{
case
0
:
display_wind_direct
(
1
,
0
,
0
);
break
;
case
1
:
display_wind_direct
(
0
,
1
,
0
);
break
;
case
2
:
display_wind_direct
(
0
,
0
,
1
);
break
;
default:
break
;
}
break
;
break
;
}
}
// else if(gKey_Press_Info.adjust_fan_speed_status == 2)
// {
// u8 speed_direct = 0;
// speed_direct = Get_NextOne_By_Current_wind_direct(1,Oled_Display_Info.Air_Device.air_wind_direct);
// switch(speed_direct) //显示当前风向
// {
// case 0:
// display_wind_direct(1,0,0);
// break;
// case 1:
// display_wind_direct(0,1,0);
// break;
// case 2:
// display_wind_direct(0,0,1);
// break;
// default:
// break;
// }
// Control_AIR_CONDITION_By_RS485(AIR_CMD_FAN_DIRECT,speed_direct); //控制空调风向
// break;
// }
if
(
sKey_Operation
[
0
].
operate_delay_off_status
)
if
(
sKey_Operation
[
0
].
operate_delay_off_status
)
{
{
sKey_Operation
[
0
].
record_adjust_delay_off
+=
5
;
sKey_Operation
[
0
].
record_adjust_delay_off
+=
5
;
...
@@ -1272,19 +1281,11 @@ static void KEY5_Botton_Process_Handler(u8 KeyPressEvent)
...
@@ -1272,19 +1281,11 @@ static void KEY5_Botton_Process_Handler(u8 KeyPressEvent)
/**************************************************
/**************************************************
调节设置温度
调节设置温度
**************************************************/
**************************************************/
sKey_Operation
[
0
].
set_temper_temp
=
Oled_Display_Info
.
Air_Device
.
set_temperature
;
Oled_Display_Info
.
Air_Device
.
set_temperature
+=
5
;
sKey_Operation
[
0
].
set_temper_temp
+=
5
;
if
(
Oled_Display_Info
.
Air_Device
.
set_temperature
>=
300
)
if
(
sKey_Operation
[
0
].
set_temper_temp
>=
300
)
Oled_Display_Info
.
Air_Device
.
set_temperature
=
300
;
sKey_Operation
[
0
].
set_temper_temp
=
300
;
display_set_temp
(
0
,
Oled_Display_Info
.
Air_Device
.
set_temperature
,
0
);
//显示设置温度
display_set_temp
(
0
,
sKey_Operation
[
0
].
set_temper_temp
,
0
);
//显示设置温度
if
(
(
sKey_Operation
[
0
].
set_temper_temp
/
10
)
==
(
Oled_Display_Info
.
Air_Device
.
set_temperature
/
10
))
//26.0调整到26.6度时,不管空调的反馈,直接上报
{
Oled_Display_Info
.
Air_Device
.
set_temperature
=
sKey_Operation
[
0
].
set_temper_temp
;
sKey_Operation
[
0
].
set_temper_temp
=
0xff
;
//不需要下发控制命令给空调
}
else
Oled_Display_Info
.
Air_Device
.
set_temperature
=
sKey_Operation
[
0
].
set_temper_temp
;
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_set_temp_start
();
delay_control_set_temp_start
();
#else
#else
...
@@ -1493,21 +1494,13 @@ static void KEY6_Botton_Process_Handler(u8 KeyPressEvent)
...
@@ -1493,21 +1494,13 @@ static void KEY6_Botton_Process_Handler(u8 KeyPressEvent)
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
break
;
break
;
}
}
sKey_Operation
[
0
].
set_temper_temp
=
Oled_Display_Info
.
Air_Device
.
set_temperature
;
if
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_AIR
)
if
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_AIR
)
{
{
sKey_Operation
[
0
].
set_temper_temp
-=
5
;
Oled_Display_Info
.
Air_Device
.
set_temperature
-=
5
;
if
(
sKey_Operation
[
0
].
set_temper_temp
<=
160
)
//美的空调温度调节范围 17度 - 30度
if
(
Oled_Display_Info
.
Air_Device
.
set_temperature
<=
160
)
//美的空调温度调节范围 17度 - 30度
sKey_Operation
[
0
].
set_temper_temp
=
160
;
Oled_Display_Info
.
Air_Device
.
set_temperature
=
160
;
display_set_temp
(
0
,
sKey_Operation
[
0
].
set_temper_temp
,
0
);
//显示设置温度
display_set_temp
(
0
,
Oled_Display_Info
.
Air_Device
.
set_temperature
,
0
);
//显示设置温度
if
(
(
sKey_Operation
[
0
].
set_temper_temp
/
10
)
==
(
Oled_Display_Info
.
Air_Device
.
set_temperature
/
10
))
//26.5调整到26度时,不管空调的反馈,直接上报
{
Oled_Display_Info
.
Air_Device
.
set_temperature
=
sKey_Operation
[
0
].
set_temper_temp
;
sKey_Operation
[
0
].
set_temper_temp
=
0xff
;
//不需要下发控制命令给空调
}
else
Oled_Display_Info
.
Air_Device
.
set_temperature
=
sKey_Operation
[
0
].
set_temper_temp
;
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_set_temp_start
();
delay_control_set_temp_start
();
#else
#else
...
@@ -1664,29 +1657,29 @@ plus_or_sub
...
@@ -1664,29 +1657,29 @@ plus_or_sub
wind_direct 表示当前的风向
wind_direct 表示当前的风向
return 返回下个风向
return 返回下个风向
**********************************************************/
**********************************************************/
u8
Get_NextOne_By_Current_wind_direct
(
u8
plus_or_sub
,
u8
wind_direct
)
//
u8 Get_NextOne_By_Current_wind_direct(u8 plus_or_sub,u8 wind_direct)
{
//
{
u8
next_direct
=
0
;
//
u8 next_direct = 0;
switch
(
wind_direct
)
//
switch(wind_direct)
{
//
{
case
0
:
//
case 0:
{
//
{
((
plus_or_sub
)
?
(
next_direct
=
1
)
:
(
next_direct
=
2
));
//
((plus_or_sub) ? (next_direct = 1):(next_direct = 2));
}
//
}
break
;
//
break;
case
1
:
//
case 1:
{
//
{
((
plus_or_sub
)
?
(
next_direct
=
2
)
:
(
next_direct
=
0
));
//
((plus_or_sub) ? (next_direct = 2):(next_direct = 0));
}
//
}
break
;
//
break;
case
2
:
//
case 2:
{
//
{
((
plus_or_sub
)
?
(
next_direct
=
0
)
:
(
next_direct
=
1
));
//
((plus_or_sub) ? (next_direct = 0):(next_direct =1));
}
//
}
break
;
//
break;
}
//
}
return
next_direct
;
//
return next_direct;
}
//
}
/*********************************************************
/*********************************************************
查询下一个风速
查询下一个风速
plus_or_sub 代表是增加还是减少 1,代表调高,0代表调小
plus_or_sub 代表是增加还是减少 1,代表调高,0代表调小
...
@@ -1800,6 +1793,7 @@ u8 Get_NextOne_By_Current_Speed_Level(u8 plus_or_sub,u8 fan_speed,u8 type_suppor
...
@@ -1800,6 +1793,7 @@ u8 Get_NextOne_By_Current_Speed_Level(u8 plus_or_sub,u8 fan_speed,u8 type_suppor
}
}
return
next_level
;
return
next_level
;
}
}
#if ( (DEV_TYPE == 1) &&(DEVICE_TYPE_AIR_CONDITION ==1)) ||(DEVICE_TYPE_FLOOR_HEATING) ||(DEVICE_TYPE_FAN)
/******************************************
/******************************************
阀门开关控制(K1,K2,K3,K4,K5)
阀门开关控制(K1,K2,K3,K4,K5)
...
@@ -1888,6 +1882,18 @@ void Tap_Init(void)
...
@@ -1888,6 +1882,18 @@ void Tap_Init(void)
}
}
}
}
else
if
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
==
SYSTEM_MODE_AUTO
)
{
if
(
260
-
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
>
20
)
{
Relay_Action
(
0x01
,
0x01
);
//继电器吸合
}
else
if
(
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
-
260
>
10
)
{
Relay_Action
(
0x01
,
0x00
);
//继电器断开
}
}
}
}
#elif DEVICE_TYPE_FAN
#elif DEVICE_TYPE_FAN
Fan_Speed_Control
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
);
//默认打开
Fan_Speed_Control
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
);
//默认打开
...
@@ -1900,6 +1906,57 @@ void Tap_Init(void)
...
@@ -1900,6 +1906,57 @@ void Tap_Init(void)
#endif
#endif
}
}
/******************************************
//新风模式切换,打开关闭旁通模式
*******************************************/
void
Fan_PassbyONOFF_By_Mode_Trans
(
u8
system_mdoe
,
u8
reset_count_time
)
{
if
(
system_mdoe
==
SYSTEM_MODE_MANUAL
)
{
Relay_Action
(
0x08
,
0x00
);
Tap_Status_Scan_Task_Stop
();
}
else
if
(
system_mdoe
==
SYSTEM_MODE_ROLL
)
{
//开启状态扫描事件
Tap_Status_Scan_Task_Start
();
Relay_Action
(
0x08
,
0x08
);
}
if
(
reset_count_time
)
{
auto_time
=
0
;
auto_type
=
0
;
}
}
/******************************************
//新风风速切换
*******************************************/
void
Fan_Speed_Control
(
u8
wind_speed
)
{
switch
(
wind_speed
)
{
//K3
case
WIND_SPEED_LOW
:
{
Relay_Action
(
0x07
,
0x04
);
}
break
;
//K2
case
WIND_SPEED_MID
:
{
Relay_Action
(
0x07
,
0x02
);
}
break
;
//K1
case
WIND_SPEED_HIGH
:
{
Relay_Action
(
0x07
,
0x01
);
}
break
;
}
}
#endif
/******************************************
/******************************************
//风阀 冷热阀 轮训,根据温度开启关闭
//风阀 冷热阀 轮训,根据温度开启关闭
*******************************************/
*******************************************/
...
@@ -1920,6 +1977,18 @@ void Tap_Status_Scan(void)
...
@@ -1920,6 +1977,18 @@ void Tap_Status_Scan(void)
}
}
}
}
else
if
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
==
SYSTEM_MODE_AUTO
)
{
if
(
260
-
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
>
20
)
{
Relay_Action
(
0x01
,
0x01
);
//继电器吸合
}
else
if
(
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
-
260
>
10
)
{
Relay_Action
(
0x01
,
0x00
);
//继电器断开
}
}
}
}
#elif DEVICE_TYPE_FAN
#elif DEVICE_TYPE_FAN
if
((
Oled_Display_Info
.
FAN_Device
.
on_off
==
1
)
&&
(
Oled_Display_Info
.
aging_test_flag
!=
1
))
//开机状态且没处于15min-4h老化期间
if
((
Oled_Display_Info
.
FAN_Device
.
on_off
==
1
)
&&
(
Oled_Display_Info
.
aging_test_flag
!=
1
))
//开机状态且没处于15min-4h老化期间
...
@@ -1961,56 +2030,6 @@ void Tap_Status_Scan(void)
...
@@ -1961,56 +2030,6 @@ void Tap_Status_Scan(void)
}
}
#endif
#endif
}
}
/******************************************
//新风模式切换,打开关闭旁通模式
*******************************************/
void
Fan_PassbyONOFF_By_Mode_Trans
(
u8
system_mdoe
,
u8
reset_count_time
)
{
if
(
system_mdoe
==
SYSTEM_MODE_MANUAL
)
{
Relay_Action
(
0x08
,
0x00
);
Tap_Status_Scan_Task_Stop
();
}
else
if
(
system_mdoe
==
SYSTEM_MODE_ROLL
)
{
//开启状态扫描事件
Tap_Status_Scan_Task_Start
();
Relay_Action
(
0x08
,
0x08
);
}
if
(
reset_count_time
)
{
auto_time
=
0
;
auto_type
=
0
;
}
}
/******************************************
//新风风速切换
*******************************************/
void
Fan_Speed_Control
(
u8
wind_speed
)
{
switch
(
wind_speed
)
{
//K3
case
WIND_SPEED_LOW
:
{
Relay_Action
(
0x07
,
0x04
);
}
break
;
//K2
case
WIND_SPEED_MID
:
{
Relay_Action
(
0x07
,
0x02
);
}
break
;
//K1
case
WIND_SPEED_HIGH
:
{
Relay_Action
(
0x07
,
0x01
);
}
break
;
}
}
/******************************************
/******************************************
//童锁操作
//童锁操作
*******************************************/
*******************************************/
...
@@ -2070,4 +2089,3 @@ void Control_ChildLock_Onoff(u8 device_type,u8 onoff)
...
@@ -2070,4 +2089,3 @@ void Control_ChildLock_Onoff(u8 device_type,u8 onoff)
}
}
save_data
();
save_data
();
}
}
Code/海顿-多合一新风面板/APP/User/src/air_condition.c
View file @
4f2cd626
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
#include "key.h"
#include "key.h"
#include "ZH_protocol.h"
#include "ZH_protocol.h"
#include "display_common.h"
#include "display_common.h"
#include "BL55072A.h"
/************************************************************************************************
/************************************************************************************************
时间:2019.9.16
时间:2019.9.16
作者:吴明军
作者:吴明军
...
@@ -12,112 +13,35 @@
...
@@ -12,112 +13,35 @@
参数: 传递opearoteID,productID协议的第三位,此位表示品牌编号
参数: 传递opearoteID,productID协议的第三位,此位表示品牌编号
返回值:无
返回值:无
*****************************************************************************************************/
*****************************************************************************************************/
extern
Lcd_Status_Info_t
LCDShowTemp_state_t
;
u32
use_oprearoteID
=
MIDEA_OPERATE_ID
,
use_productID
=
MIDEA_PRODUCT_ID
;
u32
use_oprearoteID
=
0xff
,
use_productID
=
0xff
;
#define SIMULATOR 0 //模拟器
void
transfer_opearoteID_productID
(
uint8_t
brand
)
#define DAIKIN 1 //品牌 :大金
#define HITACHI 2 //品牌 :日立
#define TOSHIBA 3 //东芝
#define MITSUBISHI 4 //三菱重工
#define MITSUBISHI_ELECTRIC 5 //三菱电机
#define GREE 6 //格力
#define MIDEA_TRADEMARK 7 //美的
#define DAIKIN_MX 8 //大金MX
#define HITACHI_US 9 //日立US
#define DAIKIN_NEW_WIND 10 //大金新风
#define HITACHI_NEW_WIND 11 //日立新风
#define PANASONIC_NEW_WIND 12 //松下新风
#define GREE_A_PAD 13 //格力A 型风管
#define YORK 14 //约克
#define MCQUARY 15 //麦克斯韦尔
#define GREE_HOTEL_PAD 16 //格力酒店风管
#define TRANE 17 //特灵一拖一
#define HAIER 18 //海尔一拖一
#define MIDEA_COOL_WIND 19 //美的酷风
#define GREE_C1_PAD 20 //格力C1风管
#define GREE_NEW_WIND_AREFACTION 21 //格力新风除湿
void
transfer_opearoteID_productID
(
u8
brand
,
u8
type
)
{
{
switch
(
brand
)
Oled_Display_Info
.
Air_Device
.
air_product_id
=
brand
;
{
Oled_Display_Info
.
Air_Device
.
air_cond_type
=
type
;
case
SIMULATOR
:
break
;
case
DAIKIN
:
use_oprearoteID
=
DAIKIN_OPERATE_ID
;
use_productID
=
DAIKIN_PRODUCT_ID
;
break
;
case
HITACHI
:
use_oprearoteID
=
HITACHI_OPERATE_ID
;
use_productID
=
HITACHI_PRODUCT_ID
;
break
;
case
TOSHIBA
:
use_oprearoteID
=
TOSHIBA_OPERATE_ID
;
use_productID
=
TOSHIBA_PRODUCT_ID
;
break
;
case
MITSUBISHI
:
use_oprearoteID
=
MITSUBISHI_OPERATE_ID
;
use_productID
=
MITSUBISHI_PRODUCT_ID
;
break
;
case
MITSUBISHI_ELECTRIC
:
use_oprearoteID
=
MITSUBISHI_ELECTRIC_OPERATE_ID
;
use_productID
=
MITSUBISHI_ELECTRIC_PRODUCT_ID
;
break
;
case
GREE
:
use_oprearoteID
=
GREE_OPERATE_ID
;
use_productID
=
GREE_PRODUCT_ID
;
break
;
case
MIDEA_TRADEMARK
:
use_oprearoteID
=
MIDEA_OPERATE_ID
;
use_productID
=
MIDEA_PRODUCT_ID
;
break
;
case
DAIKIN_MX
:
use_oprearoteID
=
DAIKIN_MX_OPERATE_ID
;
use_productID
=
DAIKIN_MX_PRODUCT_ID
;
break
;
case
HITACHI_US
:
use_oprearoteID
=
HITACHI_US_OPERATE_ID
;
use_productID
=
HITACHI_US_PRODUCT_ID
;
break
;
case
DAIKIN_NEW_WIND
:
use_oprearoteID
=
DAIKIN_NEW_WIND_OPERATE_ID
;
use_productID
=
DAIKIN_NEW_WIND_PRODUCT_ID
;
break
;
case
HITACHI_NEW_WIND
:
use_oprearoteID
=
HITACHI_NEW_WIND_OPERATE_ID
;
use_productID
=
HITACHI_NEW_WIND_PRODUCT_ID
;
break
;
case
PANASONIC_NEW_WIND
:
use_oprearoteID
=
PANASONIC_NEW_WIND_OPERATE_ID
;
use_productID
=
PANASONIC_NEW_WIND_PRODUCT_ID
;
break
;
case
GREE_A_PAD
:
use_oprearoteID
=
GREE_A_PAD_OPERATE_ID
;
use_productID
=
GREE_A_PAD_PRODUCT_ID
;
break
;
case
YORK
:
use_oprearoteID
=
YORK_OPERATE_ID
;
use_productID
=
YORK_PRODUCT_ID
;
break
;
case
MCQUARY
:
use_oprearoteID
=
MCQUARY_PAD_OPERATE_ID
;
use_productID
=
MCQUARY_PRODUCT_ID
;
break
;
case
GREE_HOTEL_PAD
:
use_oprearoteID
=
GREE_HOTEL_PAD_OPERATE_ID
;
use_productID
=
GREE_HOTEL_PAD_PRODUCT_ID
;
break
;
case
TRANE
:
use_oprearoteID
=
TRANE_OPERATE_ID
;
use_productID
=
TRANE_PRODUCT_ID
;
break
;
case
HAIER
:
use_oprearoteID
=
HAIER_OPERATE_ID
;
use_productID
=
HAIER_PRODUCT_ID
;
break
;
case
MIDEA_COOL_WIND
:
use_oprearoteID
=
MIDEA_COOL_WIND_OPERATE_ID
;
use_productID
=
MIDEA_COOL_WIND_PRODUCT_ID
;
break
;
case
GREE_C1_PAD
:
use_oprearoteID
=
GREE_C1_PAD_OPERATE_ID
;
use_productID
=
GREE_C1_PAD_PRODUCT_ID
;
break
;
case
GREE_NEW_WIND_AREFACTION
:
use_oprearoteID
=
GREE_NEW_WIND_AREFACTION_OPERATE_ID
;
use_productID
=
GREE_NEW_WIND_AREFACTION_PRODUCT_ID
;
break
;
default
:
break
;
}
}
}
extern
KEY_OPERATE
sKey_Operation
[
3
];
extern
KEY_OPERATE
sKey_Operation
[
3
];
static
void
air_report_process
(
void
)
static
void
air_report_process
(
void
)
...
@@ -125,7 +49,7 @@ static void air_report_process(void)
...
@@ -125,7 +49,7 @@ static void air_report_process(void)
/*读取oprearoteID,productID*/
/*读取oprearoteID,productID*/
if
(
ZH_protocol_i
->
poll_check_receive
[
SWITCH
]
==
0xAA
)
//带此标志的专为读取oprearoteID,productID,故之后不再次解读
if
(
ZH_protocol_i
->
poll_check_receive
[
SWITCH
]
==
0xAA
)
//带此标志的专为读取oprearoteID,productID,故之后不再次解读
{
{
transfer_opearoteID_productID
(
ZH_protocol_i
->
poll_check_receive
[
MODE
]);
//此命令中此处存放的是品牌
transfer_opearoteID_productID
(
ZH_protocol_i
->
poll_check_receive
[
MODE
]
,
ZH_protocol_i
->
poll_check_receive
[
TEMPERATURE
]
);
//此命令中此处存放的是品牌
}
}
else
else
{
{
...
@@ -167,12 +91,11 @@ static void air_report_process(void)
...
@@ -167,12 +91,11 @@ static void air_report_process(void)
if
(
(
ZH_protocol_i
->
poll_check_receive
[
TEMPERATURE
]
!=
(
Oled_Display_Info
.
Air_Device
.
set_temperature
/
10
)
)
&&
if
(
(
ZH_protocol_i
->
poll_check_receive
[
TEMPERATURE
]
!=
(
Oled_Display_Info
.
Air_Device
.
set_temperature
/
10
)
)
&&
(
ZH_protocol_i
->
poll_check_receive
[
TEMPERATURE
]
!=
0xFF
))
(
ZH_protocol_i
->
poll_check_receive
[
TEMPERATURE
]
!=
0xFF
))
{
{
if
(
sKey_Operation
[
0
].
set_temper_temp
>=
10
*
ZH_protocol_i
->
poll_check_receive
[
TEMPERATURE
])
Oled_Display_Info
.
Air_Device
.
set_temperature
=
10
*
ZH_protocol_i
->
poll_check_receive
[
TEMPERATURE
];
Oled_Display_Info
.
Air_Device
.
set_temperature
=
sKey_Operation
[
0
].
set_temper_temp
;
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
//开机状态
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
//开机状态
{
{
//display_set_temp(
Oled_Display_Info.Air_Device.set_temperature,0);
display_set_temp
(
0
,
Oled_Display_Info
.
Air_Device
.
set_temperature
,
0
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
// 上报状态
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
// 上报状态
}
}
...
@@ -182,13 +105,30 @@ static void air_report_process(void)
...
@@ -182,13 +105,30 @@ static void air_report_process(void)
if
((
ZH_protocol_i
->
poll_check_receive
[
SWITCH
]
!=
Oled_Display_Info
.
Air_Device
.
on_off
)
&&
(
ZH_protocol_i
->
poll_check_receive
[
SWITCH
]
!=
0xFF
))
if
((
ZH_protocol_i
->
poll_check_receive
[
SWITCH
]
!=
Oled_Display_Info
.
Air_Device
.
on_off
)
&&
(
ZH_protocol_i
->
poll_check_receive
[
SWITCH
]
!=
0xFF
))
{
{
Oled_Display_Info
.
Air_Device
.
on_off
=
ZH_protocol_i
->
poll_check_receive
[
SWITCH
];
Oled_Display_Info
.
Air_Device
.
on_off
=
ZH_protocol_i
->
poll_check_receive
[
SWITCH
];
printf
(
"on off =%d
\r\n
"
,
Oled_Display_Info
.
Air_Device
.
on_off
);
//
printf("on off =%d\r\n",Oled_Display_Info.Air_Device.on_off);
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
Control_OnOff_handler
(
AIR_CONDITION
,
1
);
Control_OnOff_handler
(
AIR_CONDITION
,
1
);
else
else
{
BL55072A_Clear
();
Control_OnOff_handler
(
AIR_CONDITION
,
0
);
Control_OnOff_handler
(
AIR_CONDITION
,
0
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
}
}
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
if
(
ZH_protocol_i
->
poll_check_receive
[
STATE
]
&
0x10
)
{
Oled_Display_Info
.
Air_Device
.
air_master_slavery_mode
=
1
;
if
(
!
IsLcdEnterScreenSave
()
&&
(
Oled_Display_Info
.
Air_Device
.
power_off_time
==
0
)
&&
(
Oled_Display_Info
.
Air_Device
.
on_off
))
{
LCDShowTemp_state_t
.
LCD_place
=
H_CHAR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
}
#endif
}
}
}
}
void
ZH_msg_deal
(
void
)
void
ZH_msg_deal
(
void
)
...
...
Code/海顿-多合一新风面板/APP/User/src/control_comm.c
View file @
4f2cd626
...
@@ -65,7 +65,7 @@ u8 Device_status[25]= {
...
@@ -65,7 +65,7 @@ u8 Device_status[25]= {
TIMEING_OPTION
_Time_Power_Off
=
{
0
,
0
,
0
,
0
};
TIMEING_OPTION
_Time_Power_Off
=
{
0
,
0
,
0
,
0
};
#define sBacklight_INIT { 1,0,0}
#define sBacklight_INIT { 1,0,0}
BACKLIGHT_CONTROL
sBacklight
=
sBacklight_INIT
;
BACKLIGHT_CONTROL
sBacklight
=
sBacklight_INIT
;
ZIGBEE_UART_CONTROL
sUartDetect
=
{
1
,
0
,
0
};
ZIGBEE_UART_CONTROL
sUartDetect
=
{
1
,
0
,
0
,
0
};
//STRAINER_OPTION Strainer_Net_Used_Time = {0,0,0,0}; //产测时间,状态保存
//STRAINER_OPTION Strainer_Net_Used_Time = {0,0,0,0}; //产测时间,状态保存
...
@@ -171,6 +171,7 @@ static void delay_300ms_report_stop(void);
...
@@ -171,6 +171,7 @@ static void delay_300ms_report_stop(void);
//
//
//
//
//}
//}
void
Display_Status
(
void
);
/***********************************************************************
/***********************************************************************
* 重要任务,不停的轮询
* 重要任务,不停的轮询
***********************************************************************/
***********************************************************************/
...
@@ -181,6 +182,7 @@ void main_task(void)
...
@@ -181,6 +182,7 @@ void main_task(void)
LcdShowRunningAll
();
LcdShowRunningAll
();
uart_msg_deal
();
//产测数据解析
uart_msg_deal
();
//产测数据解析
kLedModuleActionDetectCallback
();
//zigbee指示灯操作
kLedModuleActionDetectCallback
();
//zigbee指示灯操作
Display_Status
();
#ifndef DEVICE_TYPE_AIR_CONDITION
#ifndef DEVICE_TYPE_AIR_CONDITION
Tap_Switch
();
Tap_Switch
();
...
@@ -271,14 +273,34 @@ void shtc3_sensor_measure_loop(void)
...
@@ -271,14 +273,34 @@ void shtc3_sensor_measure_loop(void)
{
{
u8
i
=
0
;
u8
i
=
0
;
s16
tmep_data
;
s16
tmep_data
;
static
u16
abnormal_times
=
0
;
int
temp_new_data
=
0
;
int
temp_new_data
=
0
;
SHTC3_GetTemp
(
&
tmep_data
);
SHTC3_GetTemp
(
&
tmep_data
);
if
(
(
tmep_data
>
1000
)
||
(
tmep_data
<-
100
))
//温度传感器错误
if
(
(
tmep_data
>
1000
)
||
(
tmep_data
<-
100
))
//温度传感器错误
{
{
if
(
abnormal_times
<
0xfe
)
abnormal_times
++
;
else
abnormal_times
=
3
;
if
(
abnormal_times
>=
3
)
Set_Error_Code
(
1
);
//温度传感器错误
Set_Error_Code
(
1
);
//温度传感器错误
}
}
else
else
{
{
if
((
Oled_Display_Info
.
screen_page
==
1
)
&&
(
Oled_Display_Info
.
Air_Device
.
error
==
1
))
//传感器故障
{
Oled_Display_Info
.
Air_Device
.
error
=
0
;
if
(
Get_Display_Status
())
{
LCDShowTemp_state_t
.
LCD_place
=
DELAY_OFF_TIME_DISPLAY
;
LCDShowTemp_state_t
.
LCD_display_count
=
0
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
}
temp_new_data
=
tmep_data
;
temp_new_data
=
tmep_data
;
for
(
i
=
0
;
i
<
data_number
-
1
;
i
++
)
for
(
i
=
0
;
i
<
data_number
-
1
;
i
++
)
...
@@ -313,7 +335,7 @@ void shtc3_sensor_measure_loop(void)
...
@@ -313,7 +335,7 @@ void shtc3_sensor_measure_loop(void)
{
{
temp_new_data
=
995
;
temp_new_data
=
995
;
}
}
printf
(
"measure temp data = %d
\r\n
"
,
temp_new_data
);
//
printf("measure temp data = %d\r\n",temp_new_data);
if
(
(
ABS
(
Oled_Display_Info
.
Air_Device
.
real_temperature
,
temp_new_data
)
>
10
)
if
(
(
ABS
(
Oled_Display_Info
.
Air_Device
.
real_temperature
,
temp_new_data
)
>
10
)
&&
(
Oled_Display_Info
.
screen_page
==
1
)
)
{
&&
(
Oled_Display_Info
.
screen_page
==
1
)
)
{
...
@@ -927,7 +949,7 @@ void delay_operate_delay_off(void)
...
@@ -927,7 +949,7 @@ void delay_operate_delay_off(void)
{
{
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_delay_off_status
=
0
;
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_delay_off_status
=
0
;
//超时,关闭
//超时,关闭
Delay_OFF_Rel_Display
(
0
,
0
,
NULL
,
0
,
0
,
0
);
Delay_OFF_Rel_Display
(
0
,
0
,
0
,
0
,
0
,
0
);
Oled_Display_whole
();
Oled_Display_whole
();
}
}
}
}
...
@@ -1148,13 +1170,8 @@ struct task_components_t task_comps[] =
...
@@ -1148,13 +1170,8 @@ struct task_components_t task_comps[] =
{
6
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Ms_500
,
Ms_500
,
setup_handler
},
//上电延时启动
{
6
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Ms_500
,
Ms_500
,
setup_handler
},
//上电延时启动
{
7
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_15
,
Sec_15
,
delay_operate_calibrate_temper
},
//15s操作倒计时
{
7
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_15
,
Sec_15
,
delay_operate_calibrate_temper
},
//15s操作倒计时
{
8
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_2
,
Sec_2
,
operate_calibrate_temper_delay_2s_off
},
//确认校准温度后延时2s关机
{
8
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_2
,
Sec_2
,
operate_calibrate_temper_delay_2s_off
},
//确认校准温度后延时2s关机
#if DEVICE_TYPE_AIR_CONDITION
{
9
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_1
,
Sec_1
,
task_retransmit
},
//重传
{
9
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_1
,
Sec_1
,
task_retransmit
},
//重传
{
10
,
SWITCH_ON
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_15
,
Sec_15
,
task_poll_check
}
,
//查询空调状态15s
{
10
,
SWITCH_ON
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_15
,
Sec_15
,
task_poll_check
}
,
//查询空调状态15s
#else
{
9
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_1
,
Sec_1
,
NULL
},
//重传
{
10
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_15
,
Sec_15
,
NULL
}
,
//查询空调状态15s
#endif
{
11
,
SWITCH_OFF
,
RUN_FLAG_1
,
SET_FLAG_0
,
Sec_1
,
Sec_1
,
aging_test
},
//老化测试
{
11
,
SWITCH_OFF
,
RUN_FLAG_1
,
SET_FLAG_0
,
Sec_1
,
Sec_1
,
aging_test
},
//老化测试
{
12
,
SWITCH_ON
,
RUN_FLAG_1
,
SET_FLAG_0
,
Sec_3
,
Sec_3
,
task_feed_dog
},
//喂狗
{
12
,
SWITCH_ON
,
RUN_FLAG_1
,
SET_FLAG_0
,
Sec_3
,
Sec_3
,
task_feed_dog
},
//喂狗
{
13
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_3
,
Sec_3
,
task_exit_aging_test
},
//退老化5s快闪
{
13
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_3
,
Sec_3
,
task_exit_aging_test
},
//退老化5s快闪
...
@@ -1182,7 +1199,6 @@ void UART1_IRQHandler(void) //
...
@@ -1182,7 +1199,6 @@ void UART1_IRQHandler(void) //
transparent_msg_recive
(
ch
);
transparent_msg_recive
(
ch
);
}
}
}
}
void
UART0_IRQHandler
(
void
)
//串口接收中断
void
UART0_IRQHandler
(
void
)
//串口接收中断
{
{
uint8_t
ch
=
0xFF
;
uint8_t
ch
=
0xFF
;
...
@@ -1193,7 +1209,7 @@ void UART0_IRQHandler(void) //
...
@@ -1193,7 +1209,7 @@ void UART0_IRQHandler(void) //
ch
=
UART_READ
(
UART0
);
ch
=
UART_READ
(
UART0
);
//单板测试相关数据解析
//
//单板测试相关数据解析
if
(
!
uart_msg_recive
(
ch
))
if
(
!
uart_msg_recive
(
ch
))
return
;
return
;
}
}
...
@@ -1241,70 +1257,20 @@ void Power_Off_Scan (void)
...
@@ -1241,70 +1257,20 @@ void Power_Off_Scan (void)
if
(
sKey_Operation
[
i
].
operate_delay_off_min
>=
30
)
if
(
sKey_Operation
[
i
].
operate_delay_off_min
>=
30
)
{
{
u8
display_data
[
3
]
=
{
0
};
sKey_Operation
[
i
].
operate_delay_off_min
=
0
;
sKey_Operation
[
i
].
operate_delay_off_min
=
0
;
if
(
i
==
0
){
//定时关机
if
(
i
==
0
){
//定时关机
if
(
Oled_Display_Info
.
Air_Device
.
power_off_time
>=
5
)
if
(
Oled_Display_Info
.
Air_Device
.
power_off_time
>=
5
)
Oled_Display_Info
.
Air_Device
.
power_off_time
-=
5
;
Oled_Display_Info
.
Air_Device
.
power_off_time
-=
5
;
display_data
[
0
]
=
Oled_Display_Info
.
Air_Device
.
power_off_time
;
}
}
else
if
(
i
==
1
){
else
if
(
i
==
1
){
if
(
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
>=
5
)
if
(
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
>=
5
)
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
-=
5
;
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
-=
5
;
display_data
[
1
]
=
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
;
}
}
else
if
(
i
==
2
){
else
if
(
i
==
2
){
if
(
Oled_Display_Info
.
FAN_Device
.
power_off_time
>=
5
)
if
(
Oled_Display_Info
.
FAN_Device
.
power_off_time
>=
5
)
Oled_Display_Info
.
FAN_Device
.
power_off_time
-=
5
;
Oled_Display_Info
.
FAN_Device
.
power_off_time
-=
5
;
display_data
[
2
]
=
Oled_Display_Info
.
FAN_Device
.
power_off_time
;
}
/*显示当前的延时关机剩余时间*/
//如果未处于屏保状态,则显示当前的延时关机时间
if
((
Oled_Display_Info
.
screen_page
==
(
i
+
1
))
&&
(
Get_Display_Status
()))
{
if
(
IsPowerOffFlashing
())
{
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
display_data
[
i
]);
sKey_Operation
[
i
].
record_adjust_delay_off
=
display_data
[
i
];
}
else
Display_poweroff_time
(
display_data
[
i
]);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
i
+
1
);
// 上报状态
if
(
(
Oled_Display_Info
.
Air_Device
.
power_off_time
<=
0
)
&&
(
i
==
0
)
)
{
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
PowerOff
();
Oled_Display_Info
.
Air_Device
.
on_off
=
0
;
Oled_Display_Info
.
Air_Device
.
power_off_flage
=
0
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
}
if
((
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
<=
0
)
&&
(
i
==
1
)
)
{
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
PowerOff
();
#if FLOOR_HEATING
Control_OnOff_handler
(
FLOOR_HEATING
,
0
);
#endif
Oled_Display_Info
.
FLOOR_Device
.
on_off
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
power_off_flage
=
0
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
}
if
((
Oled_Display_Info
.
FAN_Device
.
power_off_time
<=
0
)
&&
(
i
==
2
)
)
{
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
PowerOff
();
#if DEVICE_TYPE_FAN
Control_OnOff_handler
(
FAN
,
0
);
#endif
Oled_Display_Info
.
FAN_Device
.
on_off
=
0
;
Oled_Display_Info
.
FAN_Device
.
power_off_flage
=
0
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
}
}
sKey_Operation
[
i
].
operate_delay_off_display_flag
=
1
;
}
}
}
}
}
}
...
@@ -1352,32 +1318,29 @@ void Filter_Start_Scan (void)
...
@@ -1352,32 +1318,29 @@ void Filter_Start_Scan (void)
sKey_Operation
[
i
].
filter_calc
.
operate_delay_off_h
++
;
sKey_Operation
[
i
].
filter_calc
.
operate_delay_off_h
++
;
if
((
i
==
0
)
&&
(
Oled_Display_Info
.
Air_Device
.
filter_wash_time
>=
1
)){
//定时关机
if
((
i
==
0
)
&&
(
Oled_Display_Info
.
Air_Device
.
filter_wash_time
>=
1
)){
//定时关机
Oled_Display_Info
.
Air_Device
.
filter_wash_time
-=
1
;
Oled_Display_Info
.
Air_Device
.
filter_wash_time
-=
1
;
save_data
();
}
}
else
if
((
i
==
2
)
&&
(
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
>=
1
)){
else
if
((
i
==
2
)
&&
(
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
>=
1
)){
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
-=
1
;
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
-=
1
;
}
save_data
();
save_data
();
//printf("filter time = %d\r\n",Oled_Display_Info.Air_Device.filter_wash_time);
}
if
(
(
Oled_Display_Info
.
Air_Device
.
filter_wash_time
<=
0
)
&&
(
i
==
0
)
)
//Test
if
(
(
Oled_Display_Info
.
Air_Device
.
filter_wash_time
<=
0
)
&&
(
i
==
0
)
)
//Test
{
{
Oled_Display_Info
.
Air_Device
.
error
=
3
;
//滤网清洗时间
Reset_Fiter_Time
(
AIR_CONDITION
);
Reset_Fiter_Time
(
AIR_CONDITION
);
if
(
Get_Display_Status
()
)
if
(
Oled_Display_Info
.
Air_Device
.
error
!=
3
)
{
{
Display_Up_Contend
(
AIR_CONDITION
);
Oled_Display_Info
.
Air_Device
.
error
=
3
;
//滤网清洗时间
sKey_Operation
[
i
].
filter_calc
.
operate_delay_off_display_flag
=
1
;
}
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
}
}
if
((
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
<=
0
)
&&
(
i
==
2
)
)
if
((
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
<=
0
)
&&
(
i
==
2
)
)
{
{
Oled_Display_Info
.
FAN_Device
.
error
=
3
;
//滤网清洗时间
Reset_Fiter_Time
(
FAN
);
Reset_Fiter_Time
(
FAN
);
if
(
Get_Display_Status
()
)
if
(
Oled_Display_Info
.
FAN_Device
.
error
!=
3
)
{
{
Display_Up_Contend
(
FAN
);
Oled_Display_Info
.
FAN_Device
.
error
=
3
;
//滤网清洗时间
sKey_Operation
[
i
].
filter_calc
.
operate_delay_off_display_flag
=
1
;
}
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
}
}
}
}
}
}
...
@@ -1413,8 +1376,112 @@ void Backlight_Handle (void)
...
@@ -1413,8 +1376,112 @@ void Backlight_Handle (void)
{
{
sBacklight
.
time_blacklight_s
=
0
;
sBacklight
.
time_blacklight_s
=
0
;
sBacklight
.
blacklight_flag
=
0
;
sBacklight
.
blacklight_flag
=
0
;
sBacklight
.
blacklight_display_flag
=
1
;
}
}
}
}
extern
Local_Config_Operation
local_config_operate
;
void
Display_Status
(
void
)
{
u8
i
=
0
;
//息屏显示
if
(
sBacklight
.
blacklight_display_flag
)
{
sBacklight
.
blacklight_display_flag
=
0
;
EnterScreenSaveMode
();
//熄灭进入屏保模式
EnterScreenSaveMode
();
//熄灭进入屏保模式
}
}
//串口故障显示
if
(
sUartDetect
.
zigbee_uart_display_flag
)
{
sUartDetect
.
zigbee_uart_display_flag
=
0
;
Set_Error_Code
(
2
);
//ZIGBEE串口故障
}
//配置模式超时显示
if
(
local_config_operate
.
config_timeout_display
)
{
local_config_operate
.
config_timeout_display
=
0
;
Control_OnOff_handler
(
Oled_Display_Info
.
device_type
,
0
);
//显示关
}
for
(
i
=
0
;
i
<
3
;
i
++
)
{
//延时关机显示
if
(
sKey_Operation
[
i
].
operate_delay_off_display_flag
)
{
u8
dispaly_data
;
sKey_Operation
[
i
].
operate_delay_off_display_flag
=
0
;
if
(
Oled_Display_Info
.
screen_page
==
1
)
dispaly_data
=
Oled_Display_Info
.
Air_Device
.
power_off_time
;
else
if
(
Oled_Display_Info
.
screen_page
==
2
)
dispaly_data
=
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
;
else
dispaly_data
=
Oled_Display_Info
.
FAN_Device
.
power_off_time
;
if
((
Oled_Display_Info
.
screen_page
==
(
i
+
1
))
&&
(
Get_Display_Status
()))
{
if
(
IsPowerOffFlashing
())
{
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
dispaly_data
);
sKey_Operation
[
i
].
record_adjust_delay_off
=
dispaly_data
;
}
else
Display_poweroff_time
(
dispaly_data
);
}
if
(
(
Oled_Display_Info
.
Air_Device
.
power_off_time
<=
0
)
&&
(
i
==
0
)
)
{
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
PowerOff
();
Oled_Display_Info
.
Air_Device
.
on_off
=
0
;
#if ( (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1))
Control_AIR_CONDITION_By_RS485
(
AIR_CMD_ONOFF
,
Oled_Display_Info
.
Air_Device
.
on_off
);
//控制开关
#endif
Oled_Display_Info
.
Air_Device
.
power_off_flage
=
0
;
}
else
if
((
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
<=
0
)
&&
(
i
==
1
)
)
{
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
PowerOff
();
#if FLOOR_HEATING
Control_OnOff_handler
(
FLOOR_HEATING
,
0
);
#endif
Oled_Display_Info
.
FLOOR_Device
.
on_off
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
power_off_flage
=
0
;
}
else
if
((
Oled_Display_Info
.
FAN_Device
.
power_off_time
<=
0
)
&&
(
i
==
2
)
)
{
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
PowerOff
();
#if DEVICE_TYPE_FAN
Control_OnOff_handler
(
FAN
,
0
);
#endif
Oled_Display_Info
.
FAN_Device
.
on_off
=
0
;
Oled_Display_Info
.
FAN_Device
.
power_off_flage
=
0
;
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
i
+
1
);
// 上报状态
}
//滤网时间显示
if
(
sKey_Operation
[
i
].
filter_calc
.
operate_delay_off_display_flag
)
{
sKey_Operation
[
i
].
filter_calc
.
operate_delay_off_display_flag
=
0
;
if
(
i
==
0
)
{
if
(
Get_Display_Status
())
{
Display_Up_Contend
(
AIR_CONDITION
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
}
else
if
(
i
==
2
)
{
if
(
Get_Display_Status
())
{
Display_Up_Contend
(
FAN
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
}
}
}
}
}
}
}
...
@@ -1438,11 +1505,11 @@ void Zigbee_Uart_Error_Handle (void)
...
@@ -1438,11 +1505,11 @@ void Zigbee_Uart_Error_Handle (void)
{
{
sUartDetect
.
zigbee_uart_ms
=
0
;
sUartDetect
.
zigbee_uart_ms
=
0
;
sUartDetect
.
zigbee_uart_s
++
;
sUartDetect
.
zigbee_uart_s
++
;
if
(
sUartDetect
.
zigbee_uart_s
>=
33
)
if
(
sUartDetect
.
zigbee_uart_s
>=
105
)
{
{
sUartDetect
.
zigbee_uart_s
=
0
;
sUartDetect
.
zigbee_uart_s
=
0
;
sUartDetect
.
zigbee_uart_flag
=
0
;
sUartDetect
.
zigbee_uart_flag
=
0
;
Set_Error_Code
(
2
);
//ZIGBEE串口故障
sUartDetect
.
zigbee_uart_display_flag
=
1
;
}
}
}
}
}
}
...
@@ -1529,8 +1596,6 @@ void TMR0_IRQHandler(void)
...
@@ -1529,8 +1596,6 @@ void TMR0_IRQHandler(void)
Setup_Mode_Handle
();
//配置模式10s超时
Setup_Mode_Handle
();
//配置模式10s超时
Zigbee_Uart_Error_Handle
();
//zigbee串口故障检测
Zigbee_Uart_Error_Handle
();
//zigbee串口故障检测
//kLedModuleActionDetectCallback(); //zigbee指示灯操作
}
}
/*********************************************************************/
/*********************************************************************/
void
zero_check_init
(
void
)
void
zero_check_init
(
void
)
...
@@ -1823,23 +1888,28 @@ void transparent_data_analyze(PROTOCOL_DEAL recv_data)
...
@@ -1823,23 +1888,28 @@ void transparent_data_analyze(PROTOCOL_DEAL recv_data)
switch
(
recv_data
.
Opcode
)
switch
(
recv_data
.
Opcode
)
{
{
/********************************************Common CMD Handler*************************************************************/
/********************************************Common CMD Handler*************************************************************/
case
OPCODE_GENERAL_MODEID_REPORT
:
//modeid 推送
{
Set_CMD_Handler
(
device_type
,
OPCODE_GENERAL_MODEID_REPORT
,
recv_data
.
ARG
,
recv_data
.
ARG_len
);
memset
(
arg_data
,
0
,
sizeof
(
arg_data
));
arg_data
[
0
]
=
0X00
;
ack_dev_info
(
recv_data
,
arg_data
,
1
);
break
;
}
case
_OPCODE_QUERY_NET_STATE
:
//网络状态查询
case
_OPCODE_QUERY_NET_STATE
:
//网络状态查询
{
{
Oled_Display_Info
.
net_work_flage
=
recv_data
.
ARG
[
1
];
if
(
!
kNetIndicatorIsBlinking
())
//是否在闪烁
if
(
(
kNetIndicatorIsBlinking
()
)
&&
(((
recv_data
.
ARG
[
1
]
==
IN_LINE
)
&&
(
Oled_Display_Info
.
net_work_flage
==
OUT_LINE
)
)
||
((
recv_data
.
ARG
[
1
]
==
OUT_LINE
)
&&
(
Oled_Display_Info
.
net_work_flage
==
IN_LINE
)
)))
//是否在闪烁
{
{
memset
(
arg_data
,
0
,
sizeof
(
arg_data
));
memset
(
arg_data
,
0
,
sizeof
(
arg_data
));
network_state_machine
(
recv_data
.
ARG
[
1
]);
network_state_machine
(
recv_data
.
ARG
[
1
]);
}
}
Reset_Uart_Detect_Flag
();
Reset_Uart_Detect_Flag
();
if
((
Oled_Display_Info
.
screen_page
==
1
)
&&
(
Oled_Display_Info
.
Air_Device
.
error
==
2
))
//通讯故障
{
Oled_Display_Info
.
Air_Device
.
error
=
0
;
if
(
Get_Display_Status
())
{
LCDShowTemp_state_t
.
LCD_place
=
DELAY_OFF_TIME_DISPLAY
;
LCDShowTemp_state_t
.
LCD_display_count
=
0
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
}
break
;
break
;
}
}
case
OPCODE_GENERAL_BING_DEVICE
:
//绑定设备
case
OPCODE_GENERAL_BING_DEVICE
:
//绑定设备
...
@@ -2274,10 +2344,6 @@ void Send_Device_Data(u8 channel_id,u16 opcode ,u8 *arg,u8 len)
...
@@ -2274,10 +2344,6 @@ void Send_Device_Data(u8 channel_id,u16 opcode ,u8 *arg,u8 len)
***********************************************************************/
***********************************************************************/
static
void
network_state_machine
(
TP_uc8
recv_network_state
)
static
void
network_state_machine
(
TP_uc8
recv_network_state
)
{
{
if
(
((
Oled_Display_Info
.
screen_page
==
1
)
&&
(
Oled_Display_Info
.
Air_Device
.
on_off
))
||
((
Oled_Display_Info
.
screen_page
==
2
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
))
||
((
Oled_Display_Info
.
screen_page
==
3
)
&&
(
Oled_Display_Info
.
FAN_Device
.
on_off
))
)
{
switch
(
recv_network_state
)
switch
(
recv_network_state
)
{
{
case
OUT_LINE
:
//未入网
case
OUT_LINE
:
//未入网
...
@@ -2302,7 +2368,6 @@ static void network_state_machine(TP_uc8 recv_network_state)
...
@@ -2302,7 +2368,6 @@ static void network_state_machine(TP_uc8 recv_network_state)
default
:
default
:
break
;
break
;
}
}
}
}
}
u8
Get_Channel_Id
(
u8
device_type
)
u8
Get_Channel_Id
(
u8
device_type
)
{
{
...
...
Code/海顿-多合一新风面板/APP/User/src/display_common.c
View file @
4f2cd626
...
@@ -7,11 +7,11 @@
...
@@ -7,11 +7,11 @@
extern
Lcd_Status_Info_t
LCDShowTemp_state_t
;
extern
Lcd_Status_Info_t
LCDShowTemp_state_t
;
#if DEVICE_TYPE_AIR_CONDITION
#if DEVICE_TYPE_AIR_CONDITION
OLED_ALL_DSD
Oled_Display_Info
=
{
1
,
0
,
1
,
0
,
0
,
0x11
,
0
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
DEV_TYPE
,
0
,
0
,
0
},{
1
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
OLED_ALL_DSD
Oled_Display_Info
=
{
1
,
0
,
1
,
0
,
0
,
0x11
,
0
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
,
0
},{
1
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
DEV_TYPE
,
0
,
0
,
0
},{
1
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
#elif DEVICE_TYPE_FLOOR_HEATING
#elif DEVICE_TYPE_FLOOR_HEATING
OLED_ALL_DSD
Oled_Display_Info
=
{
2
,
0
,
2
,
0
,
0
,
0x11
,
0
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
DEV_TYPE
,
0
,
0
,
0
},{
1
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
OLED_ALL_DSD
Oled_Display_Info
=
{
2
,
0
,
2
,
0
,
0
,
0x11
,
0
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
,
0
},{
1
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
DEV_TYPE
,
0
,
0
,
0
},{
1
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
#elif DEVICE_TYPE_FAN
#elif DEVICE_TYPE_FAN
OLED_ALL_DSD
Oled_Display_Info
=
{
3
,
0
,
3
,
0
,
0
,
0x1
1
,
0
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
0
,
0
,
0
,
0
},{
1
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
OLED_ALL_DSD
Oled_Display_Info
=
{
3
,
0
,
3
,
0
,
0
,
0x1
2
,
0
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
,
0
},{
1
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
0
,
0
,
0
,
0
},{
1
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
#endif
#endif
Key_Operation_Status
gKey_Press_Info
=
{
0
};
Key_Operation_Status
gKey_Press_Info
=
{
0
};
// .device_type = 1, //AIR_CONDITION
// .device_type = 1, //AIR_CONDITION
...
@@ -531,7 +531,7 @@ void Display_Up_Contend(u8 device_type)
...
@@ -531,7 +531,7 @@ void Display_Up_Contend(u8 device_type)
{
{
display_error
(
Oled_Display_Info
.
FAN_Device
.
error
);
display_error
(
Oled_Display_Info
.
FAN_Device
.
error
);
}
}
else
if
(
Oled_Display_Info
.
is_dispaly_cur_temp
)
else
if
(
(
Oled_Display_Info
.
is_dispaly_cur_temp
)
)
{
{
Display_Current_Temper
(
Oled_Display_Info
.
FAN_Device
.
real_temperature
);
Display_Current_Temper
(
Oled_Display_Info
.
FAN_Device
.
real_temperature
);
}
}
...
@@ -558,11 +558,14 @@ void Fan_Oled_Display()
...
@@ -558,11 +558,14 @@ void Fan_Oled_Display()
/********************************************
/********************************************
显示当前风速
显示当前风速
*********************************************/
*********************************************/
if
(
!
IsLcdEnterScreenSave
())
display_set_temp
(
1
,
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
1
);
display_set_temp
(
1
,
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
1
);
else
display_set_temp
(
0
,
Oled_Display_Info
.
FAN_Device
.
real_temperature
,
0
);
//显示当前温度
/********************************************
/********************************************
显示延时关机、错误码、当前温度字符
显示延时关机、错误码、当前温度字符
*********************************************/
*********************************************/
if
(
!
IsLcdEnterScreenSave
())
Display_Up_Contend
(
FAN
);
Display_Up_Contend
(
FAN
);
}
}
void
Floor_Heating_Oled_Display
()
void
Floor_Heating_Oled_Display
()
...
@@ -591,6 +594,7 @@ void Floor_Heating_Oled_Display()
...
@@ -591,6 +594,7 @@ void Floor_Heating_Oled_Display()
/********************************************
/********************************************
显示延时关机、错误码、当前温度字符
显示延时关机、错误码、当前温度字符
*********************************************/
*********************************************/
if
(
!
IsLcdEnterScreenSave
())
Display_Up_Contend
(
FLOOR_HEATING
);
Display_Up_Contend
(
FLOOR_HEATING
);
}
}
void
Air_Oled_Display
(
void
)
void
Air_Oled_Display
(
void
)
...
@@ -619,7 +623,24 @@ void Air_Oled_Display(void)
...
@@ -619,7 +623,24 @@ void Air_Oled_Display(void)
/********************************************
/********************************************
显示延时关机、错误码、当前温度字符
显示延时关机、错误码、当前温度字符
*********************************************/
*********************************************/
if
(
!
IsLcdEnterScreenSave
())
Display_Up_Contend
(
AIR_CONDITION
);
Display_Up_Contend
(
AIR_CONDITION
);
/********************************************
显示主从模式
*********************************************/
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
if
(
(
Oled_Display_Info
.
Air_Device
.
power_off_time
==
0
)
&&
(
Oled_Display_Info
.
Air_Device
.
air_master_slavery_mode
))
{
//显示H图标
if
(
!
IsLcdEnterScreenSave
())
{
LCDShowTemp_state_t
.
LCD_place
=
H_CHAR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
}
#endif
}
}
/*************************************************
/*************************************************
开机显示选项
开机显示选项
...
@@ -1330,15 +1351,8 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
...
@@ -1330,15 +1351,8 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
if
((
Oled_Display_Info
.
Air_Device
.
on_off
)
&&
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_AIR
))
if
((
Oled_Display_Info
.
Air_Device
.
on_off
)
&&
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_AIR
))
{
{
display_set_temp
(
0
,
set_temper
,
0
);
display_set_temp
(
0
,
set_temper
,
0
);
sKey_Operation
[
0
].
set_temper_temp
=
set_temper
;
Oled_Display_Info
.
Air_Device
.
set_temperature
=
set_temper
;
arg
[
0
]
=
0
;
arg
[
0
]
=
0
;
if
(
(
sKey_Operation
[
0
].
set_temper_temp
/
10
)
==
(
Oled_Display_Info
.
Air_Device
.
set_temperature
/
10
))
//26.5调整到26度时,不管空调的反馈,直接上报
{
Oled_Display_Info
.
Air_Device
.
set_temperature
=
sKey_Operation
[
0
].
set_temper_temp
;
sKey_Operation
[
0
].
set_temper_temp
=
0xff
;
}
else
Oled_Display_Info
.
Air_Device
.
set_temperature
=
sKey_Operation
[
0
].
set_temper_temp
;
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_set_temp_start
();
delay_control_set_temp_start
();
...
@@ -1951,7 +1965,7 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
...
@@ -1951,7 +1965,7 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
}
}
}
}
//进入本地配置界面
//进入本地配置界面
Local_Config_Operation
local_config_operate
=
{
0
,
0
,
0
,
0
,
2
,{
3
,
100
},
0
,
0
};
Local_Config_Operation
local_config_operate
=
{
0
,
0
,
0
,
0
,
2
,{
3
,
100
},
0
,
0
,
0
};
/************************************************************
/************************************************************
设置模式10秒计时
设置模式10秒计时
...
@@ -1970,7 +1984,7 @@ void Setup_Mode_Handle (void)
...
@@ -1970,7 +1984,7 @@ void Setup_Mode_Handle (void)
local_config_operate
.
config_time_s
=
0
;
local_config_operate
.
config_time_s
=
0
;
//退出配置模式
//退出配置模式
local_config_operate
.
enter_config_mode
=
0
;
local_config_operate
.
enter_config_mode
=
0
;
Control_OnOff_handler
(
Oled_Display_Info
.
device_type
,
0
);
//显示关
local_config_operate
.
config_timeout_display
=
1
;
}
}
}
}
}
}
...
...
Code/海顿-多合一新风面板/APP/User/src/mfg_factort.c
View file @
4f2cd626
...
@@ -42,6 +42,7 @@ static TP_u8 uart_recive_write_buff(TP_uc8 *data,TP_uc16 len)
...
@@ -42,6 +42,7 @@ static TP_u8 uart_recive_write_buff(TP_uc8 *data,TP_uc16 len)
{
{
//printf("data deal too slow");
//printf("data deal too slow");
static_transprent_buff
.
Download_serial_num
=
rem_serial
;
static_transprent_buff
.
Download_serial_num
=
rem_serial
;
static_transprent_buff
.
Buff_send_serial_num
=
rem_serial
;
return
0
;
return
0
;
}
}
}
}
...
...
Code/海顿-多合一新风面板/APP/main.c
View file @
4f2cd626
...
@@ -16,26 +16,7 @@
...
@@ -16,26 +16,7 @@
#include "control_comm.h"
#include "control_comm.h"
#include "hardware_init.h"
#include "hardware_init.h"
#include "BL55072A.h"
#include "BL55072A.h"
//void SYS_Init(void)
#include "CC2530_transparent_analyze.h"
//{
// /* Unlock protected registers */
// SYS_UnlockReg();
// // Enable UART clock
// CLK_EnableModuleClock(UART0_MODULE);
// /* Update System Core Clock */
// /* User can use SystemCoreClockUpdate() to calculate SystemCoreClock and cyclesPerUs automatically. */
// SystemCoreClockUpdate();
// /* Set P1 multi-function pins for UART RXD, TXD */
// SYS->P1_MFP = SYS_MFP_P12_UART0_RXD | SYS_MFP_P13_UART0_TXD;
// /* Lock protected registers */
// SYS_LockReg();
//}
Lcd_Status_Info_t
LCDShowTemp_state_t
=
{
0X00
,
0
,
ON
,
0X14
,
10
};
Lcd_Status_Info_t
LCDShowTemp_state_t
=
{
0X00
,
0
,
ON
,
0X14
,
10
};
...
@@ -69,7 +50,6 @@ int main()
...
@@ -69,7 +50,6 @@ int main()
hardware_init
();
hardware_init
();
zero_check_init
();
zero_check_init
();
printf
(
"
\n\n
CPU @ %dHz
\n
"
,
SystemCoreClock
);
while
(
1
)
while
(
1
)
{
{
task_process
();
task_process
();
...
...
Code/海顿-多合一新风面板/Library/StdDriver/src/clk.c
View file @
4f2cd626
...
@@ -570,17 +570,39 @@ void CLK_DisablePLL(void)
...
@@ -570,17 +570,39 @@ void CLK_DisablePLL(void)
* @details Use the SysTick to generate the delay time and the UNIT is in us.
* @details Use the SysTick to generate the delay time and the UNIT is in us.
* The SysTick clock source is from HCLK, i.e the same as system core clock.
* The SysTick clock source is from HCLK, i.e the same as system core clock.
*/
*/
//void CLK_SysTickDelay(uint32_t us)
//{
// SysTick->LOAD = us * CyclesPerUs;
// SysTick->VAL = (0x00);
// SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_ENABLE_Msk;
// /* Waiting for down-count to zero */
// while((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) == 0);
// SysTick->CTRL = 0;
//}
void
CLK_SysTickDelay
(
uint32_t
us
)
void
CLK_SysTickDelay
(
uint32_t
us
)
{
{
__IO
uint32_t
j
=
2
;
SysTick
->
LOAD
=
us
*
CyclesPerUs
;
SysTick
->
LOAD
=
us
*
CyclesPerUs
;
SysTick
->
VAL
=
(
0x00
);
SysTick
->
VAL
=
(
0x00
);
SysTick
->
CTRL
=
SysTick_CTRL_CLKSOURCE_Msk
|
SysTick_CTRL_ENABLE_Msk
;
SysTick
->
CTRL
=
SysTick_CTRL_CLKSOURCE_Msk
|
SysTick_CTRL_ENABLE_Msk
;
if
(
us
==
1
)
j
=
j
+
us
;
else
if
(
us
==
5000
)
j
=
3500
+
us
;
else
j
=
5
+
us
;
/* Waiting for down-count to zero */
/* Waiting for down-count to zero */
while
((
SysTick
->
CTRL
&
SysTick_CTRL_COUNTFLAG_Msk
)
==
0
);
//while( (SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) == 0)
while
(
((
SysTick
->
CTRL
&
SysTick_CTRL_COUNTFLAG_Msk
)
==
0
)
&&
(
--
j
));
//lmm add
SysTick
->
CTRL
=
0
;
SysTick
->
CTRL
=
0
;
}
}
//void CLK_SysTickDelay(uint32_t us)
//{
// __IO uint32_t i,j;
// for(i=0;i<us;i++);
// for(j=0;j<6;j++);
//}
/**
/**
* @brief This function check selected clock source status
* @brief This function check selected clock source status
* @param[in] u32ClkMask is selected clock source. Including
* @param[in] u32ClkMask is selected clock source. Including
...
...
Code/海顿-多合一新风面板/Library/StdDriver/src/retarget.c
View file @
4f2cd626
...
@@ -62,13 +62,13 @@ void stackDump(uint32_t stack[])
...
@@ -62,13 +62,13 @@ void stackDump(uint32_t stack[])
void
Hard_Fault_Handler
(
uint32_t
stack
[])
void
Hard_Fault_Handler
(
uint32_t
stack
[])
{
{
printf
(
"In Hard Fault Handler
\n
"
);
//
printf("In Hard Fault Handler\n");
stackDump
(
stack
);
stackDump
(
stack
);
//Chip Reset
//Chip Reset
//
SYS_UnlockReg();
SYS_UnlockReg
();
//SYS->IPRSTC1 |= SYS_IPRSTC1_CHIP_RST_Msk
;
SYS_ResetChip
()
;
while
(
1
);
while
(
1
);
}
}
...
...
Code/海顿-多合一新风面板/Library/StdDriver/src/uart.c
View file @
4f2cd626
...
@@ -211,117 +211,117 @@ uint32_t UART_Read(UART_T* uart, uint8_t *pu8RxBuf, uint32_t u32ReadBytes)
...
@@ -211,117 +211,117 @@ uint32_t UART_Read(UART_T* uart, uint8_t *pu8RxBuf, uint32_t u32ReadBytes)
}
}
//lmm modified for decrease code size
/**
/
//
**
* @brief This function use to config UART line setting.
//
* @brief This function use to config UART line setting.
*
//
*
* @param[in] uart The base address of UART module.
//
* @param[in] uart The base address of UART module.
* @param[in] u32baudrate The register value of baudrate of UART module.
//
* @param[in] u32baudrate The register value of baudrate of UART module.
* if u32baudrate = 0, UART baudrate will not change.
//
* if u32baudrate = 0, UART baudrate will not change.
* @param[in] u32data_width The data length of UART module.
//
* @param[in] u32data_width The data length of UART module.
* @param[in] u32parity The parity setting (odd/even/none) of UART module.
//
* @param[in] u32parity The parity setting (odd/even/none) of UART module.
* @param[in] u32stop_bits The stop bit length (1/1.5 bit) of UART module.
//
* @param[in] u32stop_bits The stop bit length (1/1.5 bit) of UART module.
*
//
*
* @return None
//
* @return None
*/
//
*/
void
UART_SetLine_Config
(
UART_T
*
uart
,
uint32_t
u32baudrate
,
uint32_t
u32data_width
,
uint32_t
u32parity
,
uint32_t
u32stop_bits
)
//
void UART_SetLine_Config(UART_T* uart, uint32_t u32baudrate, uint32_t u32data_width, uint32_t u32parity, uint32_t u32stop_bits)
{
//
{
uint8_t
u8UartClkSrcSel
;
//
uint8_t u8UartClkSrcSel;
uint32_t
u32Clk
=
0
;
//
uint32_t u32Clk = 0;
uint32_t
u32ClkDiv
=
0
;
//
uint32_t u32ClkDiv = 0;
uint32_t
u32Baud_Div
=
0
;
//
uint32_t u32Baud_Div = 0;
u8UartClkSrcSel
=
(
CLK
->
CLKSEL1
&
CLK_CLKSEL1_UARTSEL_Msk
)
>>
CLK_CLKSEL1_UARTSEL_Pos
;
//
u8UartClkSrcSel = (CLK->CLKSEL1 & CLK_CLKSEL1_UARTSEL_Msk) >> CLK_CLKSEL1_UARTSEL_Pos;
if
(
u8UartClkSrcSel
==
0
)
//
if(u8UartClkSrcSel == 0)
u32Clk
=
__XTAL
;
//
u32Clk = __XTAL;
else
if
(
u8UartClkSrcSel
==
1
)
//
else if(u8UartClkSrcSel == 1)
u32Clk
=
CLK_GetPLLClockFreq
();
//
u32Clk = CLK_GetPLLClockFreq();
else
if
(
u8UartClkSrcSel
>=
2
)
//
else if(u8UartClkSrcSel >= 2)
u32Clk
=
__HSI
;
//
u32Clk = __HSI;
u32ClkDiv
=
(
(
CLK
->
CLKDIV
&
CLK_CLKDIV_UARTDIV_Msk
)
>>
CLK_CLKDIV_UARTDIV_Pos
);
//
u32ClkDiv = ( (CLK->CLKDIV & CLK_CLKDIV_UARTDIV_Msk) >> CLK_CLKDIV_UARTDIV_Pos );
u32Clk
=
u32Clk
/
(
u32ClkDiv
+
1
);
//
u32Clk = u32Clk/(u32ClkDiv + 1);
if
(
u32baudrate
!=
0
)
{
//
if(u32baudrate != 0) {
u32Baud_Div
=
UART_BAUD_MODE2_DIVIDER
(
u32Clk
,
u32baudrate
);
//
u32Baud_Div = UART_BAUD_MODE2_DIVIDER(u32Clk, u32baudrate);
if
(
u32Baud_Div
>
0xFFFF
)
//
if(u32Baud_Div > 0xFFFF)
uart
->
BAUD
=
(
UART_BAUD_MODE0
|
UART_BAUD_MODE0_DIVIDER
(
u32Clk
,
u32baudrate
));
//
uart->BAUD = (UART_BAUD_MODE0 | UART_BAUD_MODE0_DIVIDER(u32Clk, u32baudrate));
else
//
else
uart
->
BAUD
=
(
UART_BAUD_MODE2
|
u32Baud_Div
);
//
uart->BAUD = (UART_BAUD_MODE2 | u32Baud_Div);
}
//
}
uart
->
LINE
=
u32data_width
|
u32parity
|
u32stop_bits
;
//
uart->LINE = u32data_width | u32parity | u32stop_bits;
}
//
}
/**
/
//
**
* @brief This function use to set Rx timeout count.
//
* @brief This function use to set Rx timeout count.
*
//
*
* @param[in] uart The base address of UART module.
//
* @param[in] uart The base address of UART module.
* @param[in] u32TOC Rx timeout counter.
//
* @param[in] u32TOC Rx timeout counter.
*
//
*
* @return None
//
* @return None
*/
//
*/
void
UART_SetTimeoutCnt
(
UART_T
*
uart
,
uint32_t
u32TOC
)
//
void UART_SetTimeoutCnt(UART_T* uart, uint32_t u32TOC)
{
//
{
uart
->
TOUT
=
(
uart
->
TOUT
&
~
UART_TOUT_TOIC_Msk
)
|
(
u32TOC
);
//
uart->TOUT = (uart->TOUT & ~UART_TOUT_TOIC_Msk)| (u32TOC);
uart
->
INTEN
|=
UART_INTEN_TOCNTEN_Msk
;
//
uart->INTEN |= UART_INTEN_TOCNTEN_Msk;
}
//
}
/**
/
//
**
* @brief The function is used to configure IrDA relative settings. It consists of TX or RX mode and baudrate.
//
* @brief The function is used to configure IrDA relative settings. It consists of TX or RX mode and baudrate.
*
//
*
* @param[in] uart The base address of UART module.
//
* @param[in] uart The base address of UART module.
* @param[in] u32Buadrate The baudrate of UART module.
//
* @param[in] u32Buadrate The baudrate of UART module.
* @param[in] u32Direction The direction(transmit:1/receive:0) of UART module in IrDA mode.
//
* @param[in] u32Direction The direction(transmit:1/receive:0) of UART module in IrDA mode.
*
//
*
* @return None
//
* @return None
*/
//
*/
void
UART_SelectIrDAMode
(
UART_T
*
uart
,
uint32_t
u32Buadrate
,
uint32_t
u32Direction
)
//
void UART_SelectIrDAMode(UART_T* uart, uint32_t u32Buadrate, uint32_t u32Direction)
{
//
{
uint8_t
u8UartClkSrcSel
;
//
uint8_t u8UartClkSrcSel;
uint32_t
u32Clk
=
0
;
//
uint32_t u32Clk = 0;
uint32_t
u32ClkDiv
=
0
;
//
uint32_t u32ClkDiv = 0;
u8UartClkSrcSel
=
(
CLK
->
CLKSEL1
&
CLK_CLKSEL1_UARTSEL_Msk
)
>>
CLK_CLKSEL1_UARTSEL_Pos
;
//
u8UartClkSrcSel = (CLK->CLKSEL1 & CLK_CLKSEL1_UARTSEL_Msk) >> CLK_CLKSEL1_UARTSEL_Pos;
if
(
u8UartClkSrcSel
==
0
)
//
if(u8UartClkSrcSel == 0)
u32Clk
=
__XTAL
;
//
u32Clk = __XTAL;
else
if
(
u8UartClkSrcSel
==
1
)
//
else if(u8UartClkSrcSel == 1)
u32Clk
=
CLK_GetPLLClockFreq
();
//
u32Clk = CLK_GetPLLClockFreq();
else
if
(
u8UartClkSrcSel
>=
2
)
//
else if(u8UartClkSrcSel >= 2)
u32Clk
=
__HSI
;
//
u32Clk = __HSI;
u32ClkDiv
=
(
(
CLK
->
CLKDIV
&
CLK_CLKDIV_UARTDIV_Msk
)
>>
CLK_CLKDIV_UARTDIV_Pos
);
//
u32ClkDiv = ( (CLK->CLKDIV & CLK_CLKDIV_UARTDIV_Msk) >> CLK_CLKDIV_UARTDIV_Pos );
u32Clk
=
u32Clk
/
(
u32ClkDiv
+
1
);
//
u32Clk = u32Clk/(u32ClkDiv + 1);
uart
->
BAUD
=
UART_BAUD_MODE0
|
UART_BAUD_MODE0_DIVIDER
(
u32Clk
,
u32Buadrate
);
//
uart->BAUD = UART_BAUD_MODE0 | UART_BAUD_MODE0_DIVIDER(u32Clk, u32Buadrate);
uart
->
IRDA
&=
~
UART_IRDA_TXINV_Msk
;
//
uart->IRDA &= ~UART_IRDA_TXINV_Msk;
uart
->
IRDA
|=
UART_IRDA_RXINV_Msk
;
//
uart->IRDA |= UART_IRDA_RXINV_Msk;
uart
->
IRDA
=
u32Direction
?
uart
->
IRDA
|
UART_IRDA_TXEN_Msk
:
uart
->
IRDA
&~
UART_IRDA_TXEN_Msk
;
//
uart->IRDA = u32Direction ? uart->IRDA | UART_IRDA_TXEN_Msk : uart->IRDA &~ UART_IRDA_TXEN_Msk;
uart
->
FUNSEL
=
(
0x2
<<
UART_FUNSEL_FUN_SEL_Pos
);
//
uart->FUNSEL = (0x2 << UART_FUNSEL_FUN_SEL_Pos);
}
//
}
/**
/
//
**
* @brief The function is used to set RS485 relative setting.
//
* @brief The function is used to set RS485 relative setting.
*
//
*
* @param[in] uart The base address of UART module.
//
* @param[in] uart The base address of UART module.
* @param[in] u32Mode The operation mode(NMM/AUD/AAD).
//
* @param[in] u32Mode The operation mode(NMM/AUD/AAD).
* @param[in] u32Addr The RS485 address.
//
* @param[in] u32Addr The RS485 address.
*
//
*
* @return None
//
* @return None
*/
//
*/
void
UART_SelectRS485Mode
(
UART_T
*
uart
,
uint32_t
u32Mode
,
uint32_t
u32Addr
)
//
void UART_SelectRS485Mode(UART_T* uart, uint32_t u32Mode, uint32_t u32Addr)
{
//
{
uart
->
FUNSEL
=
UART_FUNC_SEL_RS485
;
//
uart->FUNSEL = UART_FUNC_SEL_RS485;
uart
->
ALTCTL
=
0
;
//
uart->ALTCTL = 0;
uart
->
ALTCTL
|=
u32Mode
|
(
u32Addr
<<
UART_ALTCTL_ADDRMV_Pos
);
//
uart->ALTCTL |= u32Mode | (u32Addr << UART_ALTCTL_ADDRMV_Pos);
}
//
}
/**
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment