Compare commits
7 Commits
385548967a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 2f1319a378 | |||
| 7373c0ad95 | |||
| 090eb335a8 | |||
| 9d69b29eed | |||
| fb4e311fbe | |||
| 270141591e | |||
| f56744ad7a |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,771 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
|
||||
|
||||
<SchemaVersion>1.0</SchemaVersion>
|
||||
|
||||
<Header>### uVision Project, (C) Keil Software</Header>
|
||||
|
||||
<Extensions>
|
||||
<cExt>*.c</cExt>
|
||||
<aExt>*.s*; *.src; *.a*</aExt>
|
||||
<oExt>*.obj; *.o</oExt>
|
||||
<lExt>*.lib</lExt>
|
||||
<tExt>*.txt; *.h; *.inc; *.md</tExt>
|
||||
<pExt>*.plm</pExt>
|
||||
<CppX>*.cpp</CppX>
|
||||
<nMigrate>0</nMigrate>
|
||||
</Extensions>
|
||||
|
||||
<DaveTm>
|
||||
<dwLowDateTime>0</dwLowDateTime>
|
||||
<dwHighDateTime>0</dwHighDateTime>
|
||||
</DaveTm>
|
||||
|
||||
<Target>
|
||||
<TargetName>CalibBoard</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<TargetOption>
|
||||
<CLKADS>12000000</CLKADS>
|
||||
<OPTTT>
|
||||
<gFlags>1</gFlags>
|
||||
<BeepAtEnd>1</BeepAtEnd>
|
||||
<RunSim>0</RunSim>
|
||||
<RunTarget>1</RunTarget>
|
||||
<RunAbUc>0</RunAbUc>
|
||||
</OPTTT>
|
||||
<OPTHX>
|
||||
<HexSelection>1</HexSelection>
|
||||
<FlashByte>65535</FlashByte>
|
||||
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||
<HexOffset>0</HexOffset>
|
||||
</OPTHX>
|
||||
<OPTLEX>
|
||||
<PageWidth>79</PageWidth>
|
||||
<PageLength>66</PageLength>
|
||||
<TabStop>8</TabStop>
|
||||
<ListingPath></ListingPath>
|
||||
</OPTLEX>
|
||||
<ListingPage>
|
||||
<CreateCListing>1</CreateCListing>
|
||||
<CreateAListing>1</CreateAListing>
|
||||
<CreateLListing>1</CreateLListing>
|
||||
<CreateIListing>0</CreateIListing>
|
||||
<AsmCond>1</AsmCond>
|
||||
<AsmSymb>1</AsmSymb>
|
||||
<AsmXref>0</AsmXref>
|
||||
<CCond>1</CCond>
|
||||
<CCode>0</CCode>
|
||||
<CListInc>0</CListInc>
|
||||
<CSymb>0</CSymb>
|
||||
<LinkerCodeListing>0</LinkerCodeListing>
|
||||
</ListingPage>
|
||||
<OPTXL>
|
||||
<LMap>1</LMap>
|
||||
<LComments>1</LComments>
|
||||
<LGenerateSymbols>1</LGenerateSymbols>
|
||||
<LLibSym>1</LLibSym>
|
||||
<LLines>1</LLines>
|
||||
<LLocSym>1</LLocSym>
|
||||
<LPubSym>1</LPubSym>
|
||||
<LXref>0</LXref>
|
||||
<LExpSel>0</LExpSel>
|
||||
</OPTXL>
|
||||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>18</CpuCode>
|
||||
<DebugOpt>
|
||||
<uSim>0</uSim>
|
||||
<uTrg>1</uTrg>
|
||||
<sLdApp>1</sLdApp>
|
||||
<sGomain>1</sGomain>
|
||||
<sRbreak>1</sRbreak>
|
||||
<sRwatch>1</sRwatch>
|
||||
<sRmem>1</sRmem>
|
||||
<sRfunc>1</sRfunc>
|
||||
<sRbox>1</sRbox>
|
||||
<tLdApp>1</tLdApp>
|
||||
<tGomain>1</tGomain>
|
||||
<tRbreak>1</tRbreak>
|
||||
<tRwatch>1</tRwatch>
|
||||
<tRmem>1</tRmem>
|
||||
<tRfunc>0</tRfunc>
|
||||
<tRbox>1</tRbox>
|
||||
<tRtrace>1</tRtrace>
|
||||
<sRSysVw>1</sRSysVw>
|
||||
<tRSysVw>1</tRSysVw>
|
||||
<sRunDeb>0</sRunDeb>
|
||||
<sLrtime>0</sLrtime>
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>4</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
<sDlgPa></sDlgPa>
|
||||
<sIfile></sIfile>
|
||||
<tDll></tDll>
|
||||
<tDllPa></tDllPa>
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>Segger\JL2CM3.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMRTXEVENTFLAGS</Key>
|
||||
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGTARM</Key>
|
||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMDBGFLAGS</Key>
|
||||
<Name></Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>JL2CM3</Key>
|
||||
<Name>-U602712501 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>UL2CM3</Key>
|
||||
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM))</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint/>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
<DebugFlag>
|
||||
<trace>0</trace>
|
||||
<periodic>0</periodic>
|
||||
<aLwin>0</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>0</aSer1>
|
||||
<aSer2>0</aSer2>
|
||||
<aPa>0</aPa>
|
||||
<viewmode>1</viewmode>
|
||||
<vrSel>0</vrSel>
|
||||
<aSym>0</aSym>
|
||||
<aTbox>0</aTbox>
|
||||
<AscS1>0</AscS1>
|
||||
<AscS2>0</AscS2>
|
||||
<AscS3>0</AscS3>
|
||||
<aSer3>0</aSer3>
|
||||
<eProf>0</eProf>
|
||||
<aLa>0</aLa>
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
<StkLoc>0</StkLoc>
|
||||
<TrcWin>0</TrcWin>
|
||||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
<bAutoGenD>0</bAutoGenD>
|
||||
<LntExFlags>0</LntExFlags>
|
||||
<pMisraName></pMisraName>
|
||||
<pszMrule></pszMrule>
|
||||
<pSingCmds></pSingCmds>
|
||||
<pMultCmds></pMultCmds>
|
||||
<pMisraNamep></pMisraNamep>
|
||||
<pszMrulep></pszMrulep>
|
||||
<pSingCmdsp></pSingCmdsp>
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
<DebugDescription>
|
||||
<Enable>1</Enable>
|
||||
<EnableFlashSeq>1</EnableFlashSeq>
|
||||
<EnableLog>0</EnableLog>
|
||||
<Protocol>2</Protocol>
|
||||
<DbgClock>10000000</DbgClock>
|
||||
</DebugDescription>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
<Group>
|
||||
<GroupName>Application/MDK-ARM</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>1</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>startup_stm32f407xx.s</PathWithFileName>
|
||||
<FilenameWithoutPath>startup_stm32f407xx.s</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>Application/User/Core</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>2</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Core/Src/main.c</PathWithFileName>
|
||||
<FilenameWithoutPath>main.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>3</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Core/Src/gpio.c</PathWithFileName>
|
||||
<FilenameWithoutPath>gpio.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>4</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Core/Src/dma.c</PathWithFileName>
|
||||
<FilenameWithoutPath>dma.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Core/Src/usart.c</PathWithFileName>
|
||||
<FilenameWithoutPath>usart.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>6</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Core/Src/stm32f4xx_it.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_it.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Core/Src/stm32f4xx_hal_msp.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_msp.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_tim.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_tim_ex.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_uart.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_rcc.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_rcc_ex.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_flash.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_flash_ex.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_flash_ramfunc.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_gpio.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_dma_ex.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_dma.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_pwr.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_pwr_ex.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_cortex.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f4xx_hal_exti.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>Drivers/CMSIS</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Core/Src/system_stm32f4xx.c</PathWithFileName>
|
||||
<FilenameWithoutPath>system_stm32f4xx.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>app</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\app\app.c</PathWithFileName>
|
||||
<FilenameWithoutPath>app.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\app\gas_data.c</PathWithFileName>
|
||||
<FilenameWithoutPath>gas_data.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\app\app_timer.c</PathWithFileName>
|
||||
<FilenameWithoutPath>app_timer.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\app\app_leakage.c</PathWithFileName>
|
||||
<FilenameWithoutPath>app_leakage.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\app\app_com.c</PathWithFileName>
|
||||
<FilenameWithoutPath>app_com.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>algo</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\algo\algo_queue.c</PathWithFileName>
|
||||
<FilenameWithoutPath>algo_queue.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>bsp</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\bsp\bsp_Delay.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_Delay.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\bsp\bsp_Led.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_Led.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>33</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\bsp\bsp_Wdg.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_Wdg.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>34</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\bsp\bsp_74HC4067.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_74HC4067.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>35</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\bsp\bsp_Flash.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_Flash.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>36</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\bsp\bsp_uart.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_uart.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>gui</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>37</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\gui\gui_tjc_hmi.c</PathWithFileName>
|
||||
<FilenameWithoutPath>gui_tjc_hmi.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>protocol</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>38</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\protocol\proto_modbus_lib.c</PathWithFileName>
|
||||
<FilenameWithoutPath>proto_modbus_lib.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>39</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\protocol\proto_print.c</PathWithFileName>
|
||||
<FilenameWithoutPath>proto_print.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>40</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\protocol\proto_modbus_master_tdlas.c</PathWithFileName>
|
||||
<FilenameWithoutPath>proto_modbus_master_tdlas.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>41</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\usr\protocol\proto_modbus_slave_ex.c</PathWithFileName>
|
||||
<FilenameWithoutPath>proto_modbus_slave_ex.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>::CMSIS</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>1</RteFlg>
|
||||
</Group>
|
||||
|
||||
</ProjectOpt>
|
||||
@@ -1,949 +0,0 @@
|
||||
:020000040800F2
|
||||
:10000000D88B0020690200083D280008FF24000862
|
||||
:1000100039280008A5050008153000080000000078
|
||||
:10002000000000000000000000000000432800085D
|
||||
:1000300013070008000000004128000845280008B8
|
||||
:10004000830200088302000883020008830200087C
|
||||
:10005000830200088302000883020008830200086C
|
||||
:10006000830200088302000883020008830200085C
|
||||
:1000700083020008A905000883020008B9050008EA
|
||||
:10008000C9050008D905000883020008830200089A
|
||||
:10009000830200088302000883020008830200082C
|
||||
:1000A000830200088302000883020008830200081C
|
||||
:1000B000830200088302000883020008830200080C
|
||||
:1000C00083020008830200088302000883020008FC
|
||||
:1000D00083020008F52F000805300008830200089D
|
||||
:1000E00083020008830200088302000883020008DC
|
||||
:1000F00083020008830200088302000883020008CC
|
||||
:1001000083020008830200088302000883020008BB
|
||||
:1001100045290008830200088302000883020008C2
|
||||
:100120008302000883020008E90500088302000832
|
||||
:10013000830200088302000883020008830200088B
|
||||
:10014000830200088302000883020008830200087B
|
||||
:100150008302000883020008F905000883020008F2
|
||||
:10016000830200088302000883020008830200085B
|
||||
:1001700083020008830200088302000800000000D8
|
||||
:10018000830200088302000800F002F800F05CF827
|
||||
:100190000AA090E8000C82448344AAF10107DA45E2
|
||||
:1001A00001D100F051F8AFF2090EBAE80F0013F0D8
|
||||
:1001B000010F18BFFB1A43F001031847B8370000BE
|
||||
:1001C000D83700000A444FF0000C10F8013B13F040
|
||||
:1001D000070408BF10F8014B1D1108BF10F8015BA0
|
||||
:1001E000641E05D010F8016B641E01F8016BF9D193
|
||||
:1001F00013F0080F1EBF10F8014BAD1C0C1B09D1EA
|
||||
:100200006D1E58BF01F801CBFAD505E014F8016B5B
|
||||
:1002100001F8016B6D1EF9D59142D6D370470000ED
|
||||
:100220000023002400250026103A28BF78C1FBD8FF
|
||||
:10023000520728BF30C148BF0B6070471FB503F09D
|
||||
:100240005BFB1FBD10B510BD00F072F91146FFF742
|
||||
:10025000F5FF03F079FA00F090F903B4FFF7F2FF2D
|
||||
:1002600003BC00F099F9000009488047094800479D
|
||||
:10027000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE756
|
||||
:10028000FEE7FEE704480549054A064B70470000B3
|
||||
:100290003129000889010008D87B0020D88B002074
|
||||
:1002A000D8830020D883002053EA020C00F0698034
|
||||
:1002B0002DE9F04B4FF00006002B1FBFB3FA83F57A
|
||||
:1002C00003FA05F424FA05F65E4012BF1643B2FAAB
|
||||
:1002D00082F502FA05F4C5F120051EBF22FA05FCDD
|
||||
:1002E00044EA0C04203556EA044C4FEA144418BF83
|
||||
:1002F000641C4FF000084FF00009904271EB030CB2
|
||||
:1003000039D3002919BFB1FA81F701FA07F6B0FA1B
|
||||
:1003100080F700FA07F6C7F120071EBF20FA07FC96
|
||||
:1003200046EA0C062037B6FBF4FCA7EB0507103FA6
|
||||
:1003300007F01F0BCBF120060CFA0BFB2CFA06F68C
|
||||
:1003400044BFB3460026202FA4BF5E464FF0000BEB
|
||||
:100350005BEA060C08BF4FF0010B19EB0B09ABFB76
|
||||
:10036000027C48EB0608C01B06FB02CC0BFB03CC4F
|
||||
:1003700071EB0C01C1E70B46024641464846BDE819
|
||||
:10038000F08B13B54FF000004FF00001AFF3008089
|
||||
:10039000BDE81C40704740EA010310B59B070FD130
|
||||
:1003A000042A0DD310C808C9121F9C42F8D020BAE5
|
||||
:1003B00019BA884201D9012010BD4FF0FF3010BD9D
|
||||
:1003C0001AB1D30703D0521C07E0002010BD10F86B
|
||||
:1003D000013B11F8014B1B1B07D110F8013B11F831
|
||||
:1003E000014B1B1B01D1921EF1D1184610BD032AEF
|
||||
:1003F00040F2308010F0030C00F0158011F8013B42
|
||||
:10040000BCF1020F624498BF11F801CB00F8013B28
|
||||
:1004100038BF11F8013BA2F1040298BF00F801CBEC
|
||||
:1004200038BF00F8013B11F0030300F04F80083A99
|
||||
:10043000C0F0088051F8043B083A51F804CBA0E81A
|
||||
:100440000810F5E7121D5CBF51F8043B40F8043B6F
|
||||
:10045000AFF30080D20724BF11F8013B11F801CBA4
|
||||
:1004600048BF11F8012B24BF00F8013B00F801CB75
|
||||
:1004700048BF00F8012B70474FF0000200B513464B
|
||||
:1004800094469646203922BFA0E80C50A0E80C50B4
|
||||
:10049000B1F12001BFF4F7AF090728BFA0E80C5065
|
||||
:1004A00048BF0CC05DF804EB890028BF40F8042B5E
|
||||
:1004B00008BF704748BF20F8022B11F0804F18BFCB
|
||||
:1004C00000F8012B704770477047704710B5203A0D
|
||||
:1004D000C0F00B80B1E81850203AA0E81850B1E8FD
|
||||
:1004E0001850A0E81850BFF4F5AF5FEA027C24BFB3
|
||||
:1004F000B1E81850A0E8185044BF18C918C0BDE8AA
|
||||
:1005000010405FEA827C24BF51F8043B40F8043B72
|
||||
:1005100008BF7047D20728BF31F8023B48BF11F827
|
||||
:10052000012B28BF20F8023B48BF00F8012B704781
|
||||
:10053000754600F02BF8AE4605006946534620F09C
|
||||
:100540000700854618B020B5FFF79CFEBDE82040A7
|
||||
:100550004FF000064FF000074FF000084FF0000B7F
|
||||
:1005600021F00701AC46ACE8C009ACE8C009ACE832
|
||||
:10057000C009ACE8C0098D46704710B50446AFF31A
|
||||
:1005800000802046BDE81040FFF767BE0048704776
|
||||
:10059000787B00207047000001491820ABBEFEE7C1
|
||||
:1005A0002600020000BFFEE710B5024800F078FA0E
|
||||
:1005B00010BD0000E803002010B5024800F070FAFA
|
||||
:1005C00010BD00004804002010B5024800F068FA91
|
||||
:1005D00010BD00006805002010B5024800F060FA68
|
||||
:1005E00010BD0000C805002010B5024800F058FA00
|
||||
:1005F00010BD0000A804002010B5024800F050FA19
|
||||
:1006000010BD0000080500200146087810381823A6
|
||||
:10061000B0FBF3F20848805CC865032A05D9086876
|
||||
:100620006FF30900001D886503E008686FF3090097
|
||||
:100630008865886D70470000023900080146002077
|
||||
:100640008A6A8B69CBB932B1012A0DD0022A03D054
|
||||
:10065000032A10D10EE000BFCB6A03F08073B3F120
|
||||
:10066000807F00D1012007E0CB6AB3F1C07F00D1C9
|
||||
:10067000012001E000E000BF34E08B69B3F5005FCA
|
||||
:100680001AD132B1012A07D0022A03D0032A11D18C
|
||||
:100690000AE000BF01200EE0CB6A03F08073B3F1E3
|
||||
:1006A000807F00D1012006E0CB6AB3F1C07F00D18A
|
||||
:1006B000012000E000BF15E032B1012A05D0022A76
|
||||
:1006C00004D0032A0CD103E000BF00BF012008E0E2
|
||||
:1006D000CB6A03F08073B3F1807F00D1012000E08A
|
||||
:1006E00000BF00BF704730B50468246824F480243C
|
||||
:1006F00005682C60046863608468402C04D1046839
|
||||
:10070000A2600468E16003E00468A1600468E2603C
|
||||
:1007100030BD704772B600BFFEE7000010B5002282
|
||||
:1007200001B909E0012901D10A0205E0022901D13C
|
||||
:100730000A0201E04FF440720E4B1B6823F4407331
|
||||
:100740000C4C236023461B681343236023461B681D
|
||||
:1007500023F0F803236023461B68022444EAC00404
|
||||
:100760002343044C236023461B6843F480332360F7
|
||||
:1007700010BD0000103C02401C48006800F40070EE
|
||||
:10078000B0B11A48006820F400701849086000BF32
|
||||
:100790000846006840F4006008600846006820F4DD
|
||||
:1007A0000060086000BF0846006840F40070086000
|
||||
:1007B0000E48006800F48060B0B10C48006820F476
|
||||
:1007C00080600A49086000BF0846006840F4805015
|
||||
:1007D00008600846006820F48050086000BF0846A2
|
||||
:1007E000006840F48060086070470000003C0240F0
|
||||
:1007F0000A4A126822F44072084B1A601A461268BC
|
||||
:1008000042F004021A601A4612684FF4803343EA39
|
||||
:1008100000231A43014B1A6070470000103C02404D
|
||||
:10082000074A126822F44072054B1A601A46126891
|
||||
:100830001A601A46126842F001021A60017070478D
|
||||
:10084000103C024010B50D49096821F440710B4C71
|
||||
:1008500021602146096841F4407121602146096800
|
||||
:1008600041F001012160026000BF00BF00BFBFF383
|
||||
:100870006F8F00BF00BF00BF436010BD103C02403F
|
||||
:10088000084A126822F44072064B1A601A4612682F
|
||||
:1008900042F480721A601A46126842F001021A602D
|
||||
:1008A00001807047103C0240084A126822F44072EE
|
||||
:1008B000064B1A601A46126842F400721A601A4611
|
||||
:1008C000126842F001021A6001607047103C024059
|
||||
:1008D0002348006800F0100040B12248C06940F091
|
||||
:1008E00010002049C86110201D4908601C4800689C
|
||||
:1008F00000F0200040B11B48C06940F008001949D1
|
||||
:10090000C8612020164908601548006800F04000C2
|
||||
:1009100040B11448C06940F004001249C861402049
|
||||
:100920000F4908600E48006800F0800040B10D4893
|
||||
:10093000C06940F002000B49C86180200849086086
|
||||
:100940000748006800F0020040B10648C06940F066
|
||||
:1009500020000449C8610220014908607047000076
|
||||
:100960000C3C02402806002070B5044600250020FB
|
||||
:100970001449C86100F058FC054609E0601C38B114
|
||||
:1009800024B100F051FC401BA04201D9032070BDEE
|
||||
:100990000D48006800F480300028EFD10A48006854
|
||||
:1009A00000F0010010B10120074908600648006806
|
||||
:1009B00000F0F20018B1FFF78BFF0120E7E70020FD
|
||||
:1009C000E5E70000280600200C3C024070B5044614
|
||||
:1009D000A56D00F029FC064694F83500022808D0E1
|
||||
:1009E0008020606500BF002084F8340000BF012033
|
||||
:1009F00070BD2068006820F016002168086020683B
|
||||
:100A0000406920F0800021684861206C08B9A06C22
|
||||
:100A100028B12068006820F008002168086020687C
|
||||
:100A2000006820F001002168086010E000F0FCFB85
|
||||
:100A3000801B05280BD920206065032084F8350031
|
||||
:100A400000BF002084F8340000BF0320D0E72068F6
|
||||
:100A5000006800F001000028E8D194F85C103F2005
|
||||
:100A60008840A860012084F8350000BF002084F889
|
||||
:100A7000340000BF00BFBBE7014691F835000228F3
|
||||
:100A800003D08020486501207047052081F835009B
|
||||
:100A90000868006820F001000A6810600020F3E791
|
||||
:100AA000F8B50446002000908C4800684FF41651B9
|
||||
:100AB000B0FBF1F7A56D2E6894F85C100820884013
|
||||
:100AC000304098B12068006800F0040070B12068E0
|
||||
:100AD000006820F004002168086094F85C10082089
|
||||
:100AE0008840A860606D40F00100606594F85C107B
|
||||
:100AF00001208840304068B12068406900F08000E3
|
||||
:100B000040B194F85C1001208840A860606D40F00E
|
||||
:100B10000200606594F85C1004208840304068B1A1
|
||||
:100B20002068006800F0020040B194F85C100420D6
|
||||
:100B30008840A860606D40F00400606594F85C1027
|
||||
:100B400010208840304078B32068006800F008002A
|
||||
:100B500050B394F85C1010208840A86020680068AA
|
||||
:100B600000F4802080B12068006800F4002028B9DB
|
||||
:100B7000206CC8B12046216C884715E0A06C98B164
|
||||
:100B80002046A16C88470FE02068006800F4807060
|
||||
:100B900028B92068006820F0080021680860206CEF
|
||||
:100BA00010B12046216C884794F85C1020208840C2
|
||||
:100BB0003040002865D02068006800F01000002850
|
||||
:100BC0005FD094F85C1020208840A86094F835002D
|
||||
:100BD000052828D12068006820F0160021680860E8
|
||||
:100BE0002068406920F0800021684861206C08B9C5
|
||||
:100BF000A06C28B12068006820F008002168086017
|
||||
:100C000094F85C103F208840A860012084F83500EB
|
||||
:100C100000BF002084F8340000BF206D10B12046D2
|
||||
:100C2000216D8847F8BD2068006800F4802080B1FD
|
||||
:100C30002068006800F4002028B9606C10B12046DC
|
||||
:100C4000616C88471DE0E06BD8B12046E16B8847B6
|
||||
:100C500017E02068006800F4807068B920680068B8
|
||||
:100C600020F0100021680860012084F8350000BFE2
|
||||
:100C7000002084F8340000BFE06B10B12046E16B27
|
||||
:100C80008847606D38B3606D00F00100F0B1052059
|
||||
:100C900084F835002068006820F0010021680860B1
|
||||
:100CA00000BF0098401C0090B84200D905E02068C1
|
||||
:100CB000006800F001000028F3D100BF012084F893
|
||||
:100CC000350000BF002084F8340000BFE06C10B194
|
||||
:100CD0002046E16C884700BFA4E700000C0000201C
|
||||
:100CE0002DE9F0410446002500F09EFA074614B9AC
|
||||
:100CF0000120BDE8F081606A00B100BF022084F8E5
|
||||
:100D0000350000BF002084F8340000BF2068006870
|
||||
:100D100020F00100216808600AE000F085FAC01B9D
|
||||
:100D2000052805D920206065032084F83500E0E718
|
||||
:100D30002068006800F001000028EED120680568F6
|
||||
:100D400021480540D4E901010843E16808432169CD
|
||||
:100D5000084361690843A1690843E1690843216ABE
|
||||
:100D600008430543606A042803D1D4E90B01084312
|
||||
:100D70000543206805602068456925F00705606A1D
|
||||
:100D80000543606A04280DD1A06A0543E06A48B1B2
|
||||
:100D90002046FFF753FC28B140206065012084F80D
|
||||
:100DA0003500A6E7206845612046FFF72DFC064682
|
||||
:100DB00094F85C103F208840B060002060650120FE
|
||||
:100DC00084F83500002094E73F8010F02DE9F047CB
|
||||
:100DD00004460D4616461F464FF00008D4F85890BA
|
||||
:100DE00000BF94F83400012802D10220BDE8F0874A
|
||||
:100DF000012084F8340000BF94F83500012825D183
|
||||
:100E0000022084F83500002060653B4632462946C2
|
||||
:100E10002046FFF768FC94F85C103F208840C9F832
|
||||
:100E200008002068006840F0160021680860206C07
|
||||
:100E300028B12068006840F0080021680860206838
|
||||
:100E4000006840F001002168086006E000BF002053
|
||||
:100E500084F8340000BF4FF002084046C6E70000A7
|
||||
:100E600070B5044600F0E0F906462546681C10B14E
|
||||
:100E700004480078054400BF00F0D6F9801BA84262
|
||||
:100E8000FAD370BD080000202DE9F04104460E465B
|
||||
:100E90000127002500BF2548007E012802D102203D
|
||||
:100EA000BDE8F08101202149087600BF4CF25030A6
|
||||
:100EB000FFF75AFD0746002F31D1401E30602068F1
|
||||
:100EC00001280FD1207C6168FFF792FC4CF2503072
|
||||
:100ED000FFF74AFD07461648006820F00400144951
|
||||
:100EE00008601AE0A56812E0217C2846FFF716FC8E
|
||||
:100EF0004CF25030FFF738FD07460D48006820F0EF
|
||||
:100F0000FA000B4908600FB1356005E06D1CD4E9AB
|
||||
:100F100002100844A842E7D800BFFFF72DFC00BF2D
|
||||
:100F200000200249087600BF3846B9E728060020AD
|
||||
:100F3000103C02400348006840F00040014908604E
|
||||
:100F400000207047103C02402DE9F04106460F4654
|
||||
:100F500014461D464FF0010800BF1F48007E0128BF
|
||||
:100F600002D10220BDE8F08101201B49087600BFB4
|
||||
:100F70004CF25030FFF7F8FC8046B8F1000F23D157
|
||||
:100F800026B9E1B23846FFF74BFC12E0012E04D13E
|
||||
:100F9000A1B23846FFF774FC0BE0022E04D12146C3
|
||||
:100FA0003846FFF781FC04E022462B463846FFF71F
|
||||
:100FB00049FC4CF25030FFF7D7FC804607480068E8
|
||||
:100FC00020F001000549086000BF002002490876B2
|
||||
:100FD00000BF4046C6E7000028060020103C024043
|
||||
:100FE00000200949096801F0004159B10749064A42
|
||||
:100FF0000C3A1160064911600349096801F000418B
|
||||
:1010000001B1012070470000103C024023016745F8
|
||||
:10101000AB89EFCDF8B502460B4600250024002031
|
||||
:101020000021D6E0012606FA01F51E6806EA05044D
|
||||
:10103000AC4274D11E7906F00306012E04D01E794D
|
||||
:1010400006F00306022E13D190684F000326BE401F
|
||||
:10105000B0434F00DE68BE403043906050680126C8
|
||||
:101060008E40B0431E79C6F300168E403043506068
|
||||
:101070001E7906F00306032E09D0D0684F00032620
|
||||
:10108000BE40B0434F009E68BE403043D0601E79E2
|
||||
:1010900006F00306022E13D1CF0802F1200656F8FF
|
||||
:1010A00027004E07F70E0F26BE40B0434F07FF0E36
|
||||
:1010B0001E69BE403043CF0802F1200646F82700E3
|
||||
:1010C00010684F000326BE40B0431E7906F00306A9
|
||||
:1010D0004F00BE40304310605E6806F44036002E7C
|
||||
:1010E00076D000BF002600963C4E366846F4804617
|
||||
:1010F0003A4F3E603E46366806F48046009600BF92
|
||||
:1011000000BF374E8F0856F827008E07370F0F267F
|
||||
:10111000BE40B043334EB24202D1002624E057E035
|
||||
:10112000314EB24201D101261EE0304EB24201D111
|
||||
:10113000022619E02E4EB24201D1032614E02D4EB4
|
||||
:10114000B24201D104260FE02B4EB24201D1052656
|
||||
:101150000AE02A4EB24201D1062605E0284EB242EC
|
||||
:1011600001D1072600E008268F073F0FBE4030431D
|
||||
:101170001B4E8F0846F82700224E3068A0435E6859
|
||||
:1011800006F4801606B120431E4E3060361D3068CE
|
||||
:10119000A0435E6806F4001606B12043194E361DC2
|
||||
:1011A0003060184E361F3068A0435E6806F4003683
|
||||
:1011B00006B12043134E361F3060361F3068A043FF
|
||||
:1011C0005E6806F4803606B120430E4E083E30605D
|
||||
:1011D000491C1029FFF426AFF8BD00004438024036
|
||||
:1011E00008380140000002400004024000080240AC
|
||||
:1011F000000C02400010024000140240001802409F
|
||||
:10120000001C0240083C014010B5426921EA02037B
|
||||
:1012100002EA010443EA0443836110BD0AB181611B
|
||||
:1012200001E00B04836170470148006870470000CB
|
||||
:101230000000002003480068034909780844014978
|
||||
:1012400008607047000000200800002010B50D481D
|
||||
:10125000006840F400700B4908600846006840F4DC
|
||||
:10126000806008600846006840F4807008600320D1
|
||||
:1012700000F0A6F8032000F007F800F02BF800209B
|
||||
:1012800010BD0000003C024070B504460E480078D6
|
||||
:101290004FF47A71B1FBF0F00C490968B1FBF0F53D
|
||||
:1012A000284600F02FFC08B1012070BD102C07D299
|
||||
:1012B00000222146501E00F045F80548046001E078
|
||||
:1012C0000120F2E70020F0E7080000200C000020D9
|
||||
:1012D0000400002008B500BF0020009010480068FE
|
||||
:1012E00040F480400E4908600846006800F48040E1
|
||||
:1012F000009000BF00BF00BF00200090081F0068E2
|
||||
:1013000040F08050091F08600846006800F08050D7
|
||||
:10131000009000BF00BF052000F052F808BD00009B
|
||||
:101320004438024001460846002809DB00F01F034C
|
||||
:1013300001229A4043099B0003F1E023C3F80021F6
|
||||
:1013400000BF70472DE9F05F80460D461646002726
|
||||
:1013500001F062FE074639462A46334601F007008F
|
||||
:10136000C0F1070ABAF1040F02D94FF0040A01E0F4
|
||||
:10137000C0F1070AD14600F1040ABAF1070F02D200
|
||||
:101380004FF0000A01E0A0F1030AD4464FF0010A31
|
||||
:101390000AFA09FAAAF1010A0AEA020A0AFA0CFA96
|
||||
:1013A0004FF0010B0BFA0CFBABF1010B0BEA030B3B
|
||||
:1013B0004AEA0B042146404601F036FEBDE8F09FA4
|
||||
:1013C00000BF00F00702064B19684FF6FF031940F3
|
||||
:1013D000044B0B4343EA0221014B196000BF7047E5
|
||||
:1013E0000CED00E00000FA0570B504460D460CB99E
|
||||
:1013F000012070BD5848006800F00700A84209D2DB
|
||||
:1014000055490D700846006800F00700A84201D059
|
||||
:101410000120EEE7207800F0020002281DD120789C
|
||||
:1014200000F00400042805D14C48006840F4E05066
|
||||
:101430004A490860207800F00800082805D147488C
|
||||
:10144000006840F46040454908604448006820F066
|
||||
:10145000F000A168084341490860207800F00100CD
|
||||
:10146000A8B36068012807D13C4808380068C0F379
|
||||
:101470004040B8B90120BCE76068022802D060682B
|
||||
:10148000032807D1354808380068C0F3406048B9E0
|
||||
:101490000120AEE7314808380068C0F3400008B9C1
|
||||
:1014A0000120A6E72D48006820F00300616808438A
|
||||
:1014B0002A490860FFF7B8FE064609E0FFF7B4FEC8
|
||||
:1014C000801B41F28831884202D9032091E707E06E
|
||||
:1014D0002248006800F00C006168B0EB810FEDD18C
|
||||
:1014E0001D48006800F00700A84209D91A490D708C
|
||||
:1014F0000846006800F00700A84201D0012078E704
|
||||
:10150000207800F00400042807D11448006820F473
|
||||
:10151000E050E168084311490860207800F00800B5
|
||||
:10152000082808D10D48006820F46040216940EA8D
|
||||
:10153000C1000A49086000F03FF808490968C1F392
|
||||
:101540000311074A515CC840064908600648006814
|
||||
:10155000FFF79AFE00204CE7003C024008380240AA
|
||||
:101560000A3900080C00002004000020014800682F
|
||||
:10157000704700000C00002000B5FFF7F7FF04499A
|
||||
:101580000968C1F38221034A515CC84000BD0000D4
|
||||
:10159000083802401A39000800B5FFF7E7FF044990
|
||||
:1015A0000968C1F34231034A515CC84000BD0000E4
|
||||
:1015B000083802401A3900082DE9F04700240025B8
|
||||
:1015C0000026A1462548006800F00C0020B1042840
|
||||
:1015D00005D008283AD105E0DFF8849039E0DFF83B
|
||||
:1015E000849036E01D48001F006800F03F041B484F
|
||||
:1015F000001F006800F4800078B11A481749091FDD
|
||||
:101600000968C1F38811A0FB01700146224600233E
|
||||
:101610003846FEF749FE05460EE011480F49091FFE
|
||||
:101620000968C1F38811A0FB01700146224600231E
|
||||
:101630003846FEF739FE05460848001F0068C0F32B
|
||||
:101640000140401C4600B5FBF6F902E0DFF81090BF
|
||||
:1016500000BF00BF4846BDE8F087000008380240E0
|
||||
:101660000024F40000127A00F8B504460CB90120F9
|
||||
:10167000F8BD207800F00100002874D0F948006817
|
||||
:1016800000F00C0004280DD0F648006800F00C00B3
|
||||
:10169000082813D1F348001F006800F48000B0F55B
|
||||
:1016A000800F0BD1EF4808380068C0F34040002895
|
||||
:1016B00059D06068002856D10120D9E700BF606882
|
||||
:1016C000B0F5803F08D1E7480838006840F4803022
|
||||
:1016D000E449083908601EE06068B0F5A02F0DD11C
|
||||
:1016E000E0480838006840F48020DE490839086086
|
||||
:1016F0000846006840F4803008600CE0D94808389B
|
||||
:10170000006820F48030D74908390860084600682E
|
||||
:1017100020F48020086000BF606890B1FFF784FD6E
|
||||
:10172000054606E0FFF780FD401B642801D9032031
|
||||
:101730009EE7CC4808380068C0F340400028F1D04C
|
||||
:1017400011E0FFF771FD054606E0FFF76DFD401B58
|
||||
:10175000642801D903208BE7C24808380068C0F329
|
||||
:1017600040400028F1D1207800F0020002285FD12B
|
||||
:10177000BC48006800F00C0058B1BA48006800F09E
|
||||
:101780000C0008281CD1B748001F006800F4800036
|
||||
:10179000B0B9B44808380068C0F3400020B1E06830
|
||||
:1017A000012801D0012063E7AE480838006820F026
|
||||
:1017B000F800216940EAC100AA490839086037E009
|
||||
:1017C000E06800B30120A8490860FFF72DFD054639
|
||||
:1017D00006E0FFF729FD401B022801D9032047E757
|
||||
:1017E000A04808380068C0F340000028F1D09D48A8
|
||||
:1017F0000838006820F0F800216940EAC1009949E2
|
||||
:101800000839086014E0002097490860FFF70CFDD4
|
||||
:10181000054606E0FFF708FD401B022801D903201A
|
||||
:1018200026E7904808380068C0F340000028F1D14E
|
||||
:10183000207800F0080008282CD16069A8B10120A8
|
||||
:101840008A490860FFF7F0FC054606E0FFF7ECFC6C
|
||||
:10185000401B022801D903200AE782486C30006847
|
||||
:10186000C0F340000028F1D014E000207F49086058
|
||||
:10187000FFF7DAFC054606E0FFF7D6FC401B02281E
|
||||
:1018800001D90320F4E677486C300068C0F34000CB
|
||||
:101890000028F1D1207800F00400042870D100273E
|
||||
:1018A00070483830006800F0805090B900BF0020C8
|
||||
:1018B00000906C483830006840F0805069493831F9
|
||||
:1018C00008600846006800F08050009000BF00BF2C
|
||||
:1018D00001276748006800F48070B0B96448006868
|
||||
:1018E00040F4807062490860FFF79EFC054606E000
|
||||
:1018F000FFF79AFC401B022801D90320B8E65C4898
|
||||
:10190000006800F480700028F2D000BFA0680128B1
|
||||
:1019100008D154486830006840F0010051496831EE
|
||||
:1019200008601DE0A06805280DD14E4868300068A9
|
||||
:1019300040F004004B49683108600846006840F0F8
|
||||
:10194000010008600CE047486830006820F00100A2
|
||||
:101950004449683108600846006820F004000860C7
|
||||
:1019600000BFA068A8B1FFF75FFC054609E0FFF7DC
|
||||
:101970005BFC401B41F28831884202D9032077E6A4
|
||||
:1019800026E0384868300068C0F340000028EED0F8
|
||||
:1019900013E0FFF749FC054608E0FFF745FC401B54
|
||||
:1019A00041F28831884201D9032061E62D48683030
|
||||
:1019B0000068C0F340000028EFD1012F07D129486B
|
||||
:1019C0003830006820F0805026493831086000BF68
|
||||
:1019D000A069002845D02348006800F00C000828C2
|
||||
:1019E0005DD0A069022845D100201F490866FFF795
|
||||
:1019F0001BFC054606E0FFF717FC401B022801D937
|
||||
:101A0000032035E6174808380068C0F34060002816
|
||||
:101A1000F1D1D4E907010843616A40EA811101224A
|
||||
:101A2000A06AC2EB500041EA00412C20005D41EA6F
|
||||
:101A300000600C49091F086001200B490866FFF788
|
||||
:101A4000F3FB054606E0FFF7EFFB401B022801D938
|
||||
:101A500003200DE6034808380068C0F34060002802
|
||||
:101A6000F1D049E00838024000004742800E47426A
|
||||
:101A700000700040002021490866FFF7D5FB0546AD
|
||||
:101A800006E0FFF7D1FB401B022801D90320EFE558
|
||||
:101A90001B480068C0F340600028F2D12CE0A06928
|
||||
:101AA000012800D1E4E51648001D0668A069012858
|
||||
:101AB00020D006F48001E06981421BD106F03F018D
|
||||
:101AC000206A814216D147F6C0703040616AB0EB9F
|
||||
:101AD000811F0FD106F440310122A06AC2EB5000F1
|
||||
:101AE000B1EB004F06D106F070612C20005DB1EB28
|
||||
:101AF000006F01D00120BBE50020B9E5000047429E
|
||||
:101B00000038024070B504462546681EB0F1807F5B
|
||||
:101B100001D301200FE0681E4FF0E02148610F2142
|
||||
:101B20004FF0FF3001F080FA00204FF0E021886193
|
||||
:101B300007200861002070BDF8B504460E46174620
|
||||
:101B400094F83E00202836D106B10FB90120F8BD27
|
||||
:101B500000BF94F83C00012801D10220F7E70120E2
|
||||
:101B600084F83C0000BF20633A463146204601F02D
|
||||
:101B7000A9F90546EDB9206B012819D100BF002055
|
||||
:101B8000009020680068009020684068009000BFC6
|
||||
:101B900000BF00BF00BF21680C3151E8001F41F0B9
|
||||
:101BA000100021680C3141E80002002AF3D100E066
|
||||
:101BB00001252846CBE70220C9E7000070B504469E
|
||||
:101BC0000D460C492068884203D10B4801F0E8FC1F
|
||||
:101BD0000EE00A492068884203D1094801F0E0FC80
|
||||
:101BE00006E008492068884202D1074801F0D8FC85
|
||||
:101BF00070BD000000100140F801002000440040CA
|
||||
:101C000048020020004C00409802002070B50446B5
|
||||
:101C1000002520684069C0F3C01594F83D002128D4
|
||||
:101C200017D1B5B100BF00BF2168143151E8001FC2
|
||||
:101C300021F080002168143141E80002002AF3D12C
|
||||
:101C400000BF606B10B1606BFEF7C0FE204600F075
|
||||
:101C500094FF20684069C0F3801594F83E00222864
|
||||
:101C600017D1B5B100BF00BF2168143151E8001F82
|
||||
:101C700021F040002168143141E80002002AF3D12C
|
||||
:101C800000BFA06B10B1A06BFEF7A0FE204600F0D5
|
||||
:101C90002EFF002070BD000038B5044600252B49FA
|
||||
:101CA0002068884201D12A4D0AE02A4920688842EA
|
||||
:101CB00001D1294D04E029492068884200D1284DEE
|
||||
:101CC000206C00F0020050B100BF0020009020689E
|
||||
:101CD0000068009020684068009000BF00BF206C42
|
||||
:101CE00000F0040050B100BF0020009020680068A0
|
||||
:101CF000009020684068009000BF00BF2068006826
|
||||
:101D0000C0F3C00050B100BF002000902068006800
|
||||
:101D1000009020684068009000BF00BF2068006805
|
||||
:101D2000C0F3400050B100BF002000902068006860
|
||||
:101D3000009020684068009000BF00BF25B1EA8B8A
|
||||
:101D4000A9696868FFF7F8FE38BD0000001001407F
|
||||
:101D5000F80100200044004048020020004C0040F0
|
||||
:101D6000980200202DE9F84F044620680568206895
|
||||
:101D7000C668206847694FF00009CA4605F00F0998
|
||||
:101D8000B9F1000F0AD105F0200038B106F02000AB
|
||||
:101D900020B1204600F004FFBDE8F88FB9F1000F34
|
||||
:101DA0007CD007F0010018B906F49070002875D0B7
|
||||
:101DB00005F0010030B106F4807018B1206C40F0DD
|
||||
:101DC0000100206405F0040030B107F0010018B1F3
|
||||
:101DD000206C40F00200206405F0020030B107F0F2
|
||||
:101DE000010018B1206C40F00400206405F00800E8
|
||||
:101DF00048B106F0200010B907F0010018B1206CBE
|
||||
:101E000040F008002064206C002846D005F0200037
|
||||
:101E100028B106F0200010B1204600F0C1FE206875
|
||||
:101E20004069C0F3801A206C00F0080010B9BAF1C4
|
||||
:101E3000000F2DD0204600F05AFE2068406900F0C7
|
||||
:101E40004000402820D100BF00BF2168143151E874
|
||||
:101E5000001F21F040002168143141E80002002AEF
|
||||
:101E6000F3D100BFA06B50B17548A16B0865A06BA2
|
||||
:101E7000FEF702FE88B1A06B016D88470DE0204699
|
||||
:101E8000FFF70AFF09E009E02046FFF705FF04E03D
|
||||
:101E90002046FFF701FF002020647DE7206B01282A
|
||||
:101EA00076D105F01000002872D006F0100000284E
|
||||
:101EB000FAD000BF002000902068006800902068E1
|
||||
:101EC0004068009000BF00BF2068406900F04000FB
|
||||
:101ED00040285ED1A06B006840681FFA80F8B8F116
|
||||
:101EE000000F54D0A08D404551DDA4F82E80A06B8A
|
||||
:101EF000C069B0F5807F43D000BF00BF21680C31BE
|
||||
:101F000051E8001F21F4807021680C3141E8000283
|
||||
:101F1000002AF3D100BF00BF00BF2168143151E88F
|
||||
:101F2000001F21F001002168143141E80002002A5D
|
||||
:101F3000F3D100BF00BF00BF2168143151E8001F7A
|
||||
:101F400021F040002168143141E80002002AF3D159
|
||||
:101F500000BF202084F83E000020206300BF00BFA7
|
||||
:101F600021680C3151E8001F21F0100021680C316C
|
||||
:101F700041E80002002AF3D100BFA06BFEF726FD66
|
||||
:101F8000A08DE28D801A81B22046FFF717FE03E78D
|
||||
:101F900040E0A08DE18D401A1FFA80F8E08DC0B3BB
|
||||
:101FA000B8F1000F35D000BF00BF21680C3151E8F7
|
||||
:101FB000001F21F4907021680C3141E80002002AD2
|
||||
:101FC000F3D100BF00BF00BF2168143151E8001FEA
|
||||
:101FD00021F001002168143141E80002002AF3D108
|
||||
:101FE00000BF202084F83E000020206300BF00BF17
|
||||
:101FF00021680C3151E8001F21F0100021680C31DC
|
||||
:1020000041E80002002AF3D100BF41462046FFF715
|
||||
:10201000D5FDC1E605F0800030B106F0800018B1B2
|
||||
:10202000204600F0B7FFB7E605F0400030B106F0FB
|
||||
:10203000400018B1204600F090FDADE600BFABE6D1
|
||||
:102040005529000810B504460CB9012010BDA0693F
|
||||
:1020500000B100E000BF94F83D0028B9002084F8EA
|
||||
:102060003C00204600F028F8242084F83D00206839
|
||||
:10207000C06820F400502168C860204600F00CFEC3
|
||||
:102080002068006920F49040216808612068406958
|
||||
:1020900020F02A00216848612068C06840F40050A0
|
||||
:1020A0002168C86000202064202084F83D0084F866
|
||||
:1020B0003E000020CAE7000010B586B00446142197
|
||||
:1020C00001A8FEF7D9F9C149206888427AD100BF3A
|
||||
:1020D00000200090BE48006840F40020BC49086021
|
||||
:1020E0000846006800F40020009000BF00BF00BF59
|
||||
:1020F00000200090B6481038006840F00100B44954
|
||||
:10210000103908600846006800F00100009000BF28
|
||||
:1021100000BF0320019002200290002003900320C2
|
||||
:1021200004900820059001A9AA48FEF773FFAA4869
|
||||
:10213000AA490860400548600021A8488160C16044
|
||||
:102140004FF480610161002141618161C1614FF4FF
|
||||
:102150004031016200214162FEF7C2FD08B1FEF785
|
||||
:10216000D9FA00BF9D48A063846300BF9A4830300D
|
||||
:102170009B4908604FF000604860402198488160AA
|
||||
:102180000021C1604FF480610161002141618161E2
|
||||
:10219000C1614FF40031016200214162FEF7A0FDF0
|
||||
:1021A00008B1FEF7B7FA00BF8D486063846300BFD3
|
||||
:1021B000002201213420FFF7C5F83420FFF7B2F8E0
|
||||
:1021C00002E1FFE78749206888427ED100BF0020F6
|
||||
:1021D00000907F48001D006840F010007C49091DF8
|
||||
:1021E00008600846006800F01000009000BF00BFC3
|
||||
:1021F00000BF0020009076481038006840F00100D1
|
||||
:102200007349103908600846006800F0010000902A
|
||||
:1022100000BF00BF4FF4C060019002200290002078
|
||||
:102220000390032004900720059001A96948FEF758
|
||||
:10223000F1FE6D486D4908604FF000604860002174
|
||||
:102240006A488160C1604FF4806101610021416191
|
||||
:102250008161C1614FF48031016200214162FEF76A
|
||||
:102260003FFD08B1FEF756FA00BF6048A0638463E3
|
||||
:1022700000BF5D4878305E4908604FF000604860FC
|
||||
:1022800040215B4881600021C1604FF480610161A1
|
||||
:10229000002141618161C1614FF4803101620021FF
|
||||
:1022A0004162FEF71DFD08B1FEF734FA00BF504849
|
||||
:1022B0006063846300BF002201212520FFF742F8FC
|
||||
:1022C0002520FFF72FF87FE0FFE74A492068884282
|
||||
:1022D0007AD100BF002000903D48006840F40030F3
|
||||
:1022E0003B4908600846006800F40030009000BFD9
|
||||
:1022F00000BF00BF0020009035481038006840F053
|
||||
:1023000008003349103908600846006800F00800EA
|
||||
:10231000009000BF00BF60200190022002900020CA
|
||||
:102320000390032004900720059001A93248FEF78E
|
||||
:1023300071FE29484830314908604FF0006048601C
|
||||
:1023400000212E488160C1604FF48061016100214D
|
||||
:1023500041618161C1614FF44031016200214162FC
|
||||
:10236000FEF7BEFC08B1FEF7D5F900BF2348A06315
|
||||
:10237000846300BF18486030214908604FF0006056
|
||||
:10238000486040211E4881600021C1604FF4806197
|
||||
:102390000161002141618161C1614FF4003101623D
|
||||
:1023A00000214162FEF79CFC08B1FEF7B3F900BFC3
|
||||
:1023B00013486063846300BF002201212620FEF7DA
|
||||
:1023C000C1FF2620FEF7AEFF06B010BD004C004056
|
||||
:1023D000403802400000024040600240E803002014
|
||||
:1023E000480400200010014040640240A80400207E
|
||||
:1023F0000805002000440040000C02406805002051
|
||||
:10240000C805002070477047F7B50446154694F894
|
||||
:102410003D00202846D1019800B10DB90120FEBD34
|
||||
:1024200000BF94F83C00012801D10220F7E7012009
|
||||
:1024300084F83C0000BF01982062A584E584002058
|
||||
:102440002064212084F83D001748616BC863174859
|
||||
:10245000616B08641648616BC8640020616B086595
|
||||
:1024600001AE23681A1D31682B46606BFEF7AEFC87
|
||||
:102470006FF040002168086000BF002084F83C0035
|
||||
:1024800000BF00BF00BF2168143151E8001F41F0B8
|
||||
:1024900080002168143141E80002002AF3D100BF16
|
||||
:1024A0000020BCE70220BAE7892A0008E12A0008D8
|
||||
:1024B0006929000810B504460B492068884203D1F9
|
||||
:1024C0000A4801F007F90EE009492068884203D163
|
||||
:1024D000084801F0FFF806E007492068884202D169
|
||||
:1024E000044801F0F7F810BD00100140F801002089
|
||||
:1024F0000044004048020020004C0040704700BFEC
|
||||
:10250000FEE7000008B500BF0020009026480068E4
|
||||
:1025100040F40010244908600846006800F40010E8
|
||||
:10252000009000BF00BF00BF002000900846006878
|
||||
:1025300040F4800008600846006800F480000090C5
|
||||
:1025400000BF00BF002211460D20FEF7FBFE0D204C
|
||||
:10255000FEF7E8FE002211460F20FEF7F3FE0F20E3
|
||||
:10256000FEF7E0FE002211461020FEF7EBFE1020E1
|
||||
:10257000FEF7D8FE002211461120FEF7E3FE1120DF
|
||||
:10258000FEF7D0FE002211463A20FEF7DBFE3A208D
|
||||
:10259000FEF7C8FE002211464620FEF7D3FE462075
|
||||
:1025A000FEF7C0FE08BD00003038024000B587B01D
|
||||
:1025B000142102A8FDF760FF00BF002001906E48C3
|
||||
:1025C000006840F010006C4908600846006800F0A0
|
||||
:1025D0001000019000BF00BF00BF0020019008461E
|
||||
:1025E000006840F0800008600846006800F0800045
|
||||
:1025F000019000BF00BF00BF0020019008460068A6
|
||||
:1026000040F0010008600846006800F001000190F9
|
||||
:1026100000BF00BF00BF002001900846006840F0E6
|
||||
:10262000020008600846006800F00200019000BF48
|
||||
:1026300000BF00BF002001900846006840F008007D
|
||||
:1026400008600846006800F00800019000BF00BF65
|
||||
:1026500000BF002001900846006840F004000860B8
|
||||
:102660000846006800F00400019000BF00BF00228F
|
||||
:102670007F214248FEF7D2FD012204214048FEF7A7
|
||||
:10268000CDFD01224FF4E0613C48FEF7C7FD012279
|
||||
:102690004FF470413B48FEF7C1FD01224FF47F41EA
|
||||
:1026A0003948FEF7BBFD01224FF470713748FEF741
|
||||
:1026B000B5FD002210213448FEF7B0FD00224FF492
|
||||
:1026C00040713048FEF7AAFD6F2002900120039070
|
||||
:1026D000002004900320059002A92848FEF79AFCE8
|
||||
:1026E0004FF4E260029001200390002004900590D6
|
||||
:1026F00002A92248FEF78EFC0420029001200390DC
|
||||
:10270000002004900320059002A91D48FEF782FCDA
|
||||
:102710004FF4704002900120039000200490059037
|
||||
:1027200002A91848FEF776FC4FF6107002900120BF
|
||||
:10273000039000200490059002A91348FEF76AFC5C
|
||||
:102740004FF47070029001200390002004900590D7
|
||||
:1027500002A90E48FEF75EFC4FF440700290012083
|
||||
:102760000390002004900320059002A90548FEF77D
|
||||
:1027700051FC07B000BD000030380240001002409C
|
||||
:102780000000024000040240000C02400008024029
|
||||
:1027900010B50B480B4908604FF4E1304860002148
|
||||
:1027A00008488160C16001610C21416100218161A3
|
||||
:1027B000C161FFF747FC08B1FDF7ACFF10BD000099
|
||||
:1027C000004C00401C03002010B50B480B4908606A
|
||||
:1027D0004FF4E1304860002108488160C160016128
|
||||
:1027E0000C21416100218161C161FFF72BFC08B11F
|
||||
:1027F000FDF790FF10BD00000010014060030020B5
|
||||
:1028000010B50B480B4908604FF416504860002182
|
||||
:1028100008488160C16001610C2141610021816132
|
||||
:10282000C161FFF70FFC08B1FDF774FF10BD000098
|
||||
:1028300000440040A403002000BFFEE700BFFEE705
|
||||
:102840007047704710B5094841690120884708481A
|
||||
:102850000121426C904707480121426C904706488D
|
||||
:102860000121426C9047FEF7E5FC10BD8C00002072
|
||||
:10287000F8010020480200209802002000B593B023
|
||||
:10288000302107A8FDF7F8FD142102A8FDF7F4FD9B
|
||||
:1028900000BF002001902448006840F08050224989
|
||||
:1028A00008600846006800F08050019000BF00BF3B
|
||||
:1028B00000BF002001901D48006840F480401B4983
|
||||
:1028C00008600846006800F48040019000BF00BF27
|
||||
:1028D000012007900004089002200D9041050E9100
|
||||
:1028E00004210F91A821109102211191042112912C
|
||||
:1028F00007A8FEF7B9FE08B1FDF70CFF0F20029004
|
||||
:1029000002200390002004904FF4A05005904FF453
|
||||
:1029100080500690052102A8FEF766FD08B1FDF77C
|
||||
:10292000F9FE13B000BD00004038024000700040C6
|
||||
:102930000348006840F470000149086070470000D7
|
||||
:1029400088ED00E010B50248FFF70CFA10BD00005A
|
||||
:102950001C03002070B50546AC6B0020E085E084C8
|
||||
:102960002046FFF799F970BD70B506460025B46B97
|
||||
:1029700020684069C0F3C01594F83D00212805D1B6
|
||||
:1029800025B10020E084204600F0F7F82068406977
|
||||
:10299000C0F3801594F83E00222805D125B100200F
|
||||
:1029A000E085204600F0A3F8206C40F01000206481
|
||||
:1029B0002046FFF771F970BD70B50546AC6B28680D
|
||||
:1029C000006800F48070002842D1E08500BF00BF9D
|
||||
:1029D00021680C3151E8001F21F4807021680C310E
|
||||
:1029E00041E80002002AF3D100BF00BF00BF216808
|
||||
:1029F000143151E8001F21F001002168143141E831
|
||||
:102A00000002002AF3D100BF00BF00BF21681431CB
|
||||
:102A100051E8001F21F040002168143141E8000214
|
||||
:102A2000002AF3D100BF202084F83E00206B01284B
|
||||
:102A30000ED100BF00BF21680C3151E8001F21F00A
|
||||
:102A4000100021680C3141E80002002AF3D100BFD8
|
||||
:102A5000206B012804D1A18D2046FFF7AFF802E0DA
|
||||
:102A60002046FFF7CFFC70BD70B50546AC6B206B00
|
||||
:102A7000012805D1A08D41082046FFF79FF802E00C
|
||||
:102A80002046FFF7C0FC70BD70B50546AC6B2868EA
|
||||
:102A9000006800F48070F8B90020E08400BF00BF37
|
||||
:102AA0002168143151E8001F21F0800021681431A1
|
||||
:102AB00041E80002002AF3D100BF00BF00BF216837
|
||||
:102AC0000C3151E8001F41F0400021680C3141E811
|
||||
:102AD0000002002AF3D102E02046FFF7EBFC70BDB4
|
||||
:102AE00070B50446A56B2846FFF708FD70BD00BF12
|
||||
:102AF00000BF02680C3252E8002F22F49071026885
|
||||
:102B00000C3242E80013002BF3D100BF00BF00BF1E
|
||||
:102B10000268143252E8002F22F0010102681432D8
|
||||
:102B200042E80013002BF3D100BF016B01290ED145
|
||||
:102B300000BF00BF02680C3252E8002F22F01001E3
|
||||
:102B400002680C3242E80013002BF3D100BF2021B1
|
||||
:102B500080F83E1000210163704710B504462068DC
|
||||
:102B6000C06820F040002168C860202084F83D0043
|
||||
:102B70002046FFF79FFC002010BD00BF00BF026889
|
||||
:102B80000C3252E8002F22F0C00102680C3242E8F9
|
||||
:102B90000013002BF3D100BF202180F83D107047B7
|
||||
:102BA000F8B5044694F83E00222873D1A068B0F529
|
||||
:102BB000805F0CD1206950B90025A66A2068406862
|
||||
:102BC000C0F308003080A06A801CA06215E0A56AEE
|
||||
:102BD0000026A068B0F5805F03D0A06828B92069FE
|
||||
:102BE00018B920684068287004E02068406800F048
|
||||
:102BF0007F002870A06A401CA062E08D401E80B259
|
||||
:102C0000E085002844D12068C06820F020002168B9
|
||||
:102C1000C8602068C06820F480702168C86020689F
|
||||
:102C2000406920F0010021684861202084F83E00BE
|
||||
:102C3000206B012826D10020206300BF00BF21683F
|
||||
:102C40000C3151E8001F21F0100021680C3141E8DF
|
||||
:102C50000002002AF3D100BF2068006800F01000D5
|
||||
:102C600010280AD100BF0020009020680068009062
|
||||
:102C700020684068009000BF00BFA18D2046FEF78D
|
||||
:102C80009DFF02E02046FFF7BDFB0020F8BD01E0FC
|
||||
:102C90000020FBE70220F9E72DE9F84F0446206801
|
||||
:102CA000006920F44050E168084321680861216907
|
||||
:102CB000A068084361690843E169084300902068FF
|
||||
:102CC000C06849F20C618843009908432168C860D4
|
||||
:102CD0002068406920F44070A16908432168486178
|
||||
:102CE00076492068884203D075492068884203D11C
|
||||
:102CF000FEF752FC814602E0FEF73EFC8146E069A9
|
||||
:102D0000B0F5004F6CD102206168A0FB0150034672
|
||||
:102D10001920A9FB007001462A463846FDF7C4FA7F
|
||||
:102D20006421B0FBF1F04FEA001A02206168A0FBB9
|
||||
:102D300001510B461920A9FB00712A463846FDF7C0
|
||||
:102D4000B3FA834602206168A0FB015003461920B4
|
||||
:102D5000A9FB00712A463846FDF7A6FA6421B0FBAC
|
||||
:102D6000F1F000EBC00101EB0010ABEB8000322171
|
||||
:102D700001EBC0006421B0FBF1F000F0F8000AEBB9
|
||||
:102D8000400A02206168A0FB015003461920A9FBFC
|
||||
:102D9000007001462A463846FDF786FA834602202F
|
||||
:102DA0006168A0FB015003461920A9FB00712A4667
|
||||
:102DB0003846FDF779FA6421B0FBF1F000EBC00171
|
||||
:102DC00001EB0010ABEB8000322101EBC00064216D
|
||||
:102DD000B0FBF1F000F007005044216888606AE021
|
||||
:102DE00004206168A0FB015003461920A9FB007074
|
||||
:102DF00001462A463846FDF757FA824604206168A4
|
||||
:102E0000A0FB015003461920A9FB007001462A4689
|
||||
:102E10003846FDF749FA6421B0FBF1F000EBC00140
|
||||
:102E200001EB0010AAEB8000322101EB00106421BD
|
||||
:102E3000B0FBF1F000F0F00A04206168A0FB017023
|
||||
:102E400003461920A9FB00513A462846FDF72CFA03
|
||||
:102E50006421B0FBF1F00AEB001A04206168A0FBCA
|
||||
:102E600001510B461920A9FB00712A463846FDF78F
|
||||
:102E70001BFA834604206168A0FB01500346192019
|
||||
:102E8000A9FB007001462A463846FDF70DFA642179
|
||||
:102E9000B0FBF1F000EBC00101EB0010ABEB8000E8
|
||||
:102EA000322101EB00106421B0FBF1F000F00F00C3
|
||||
:102EB000504421688860BDE8F88F00000010014090
|
||||
:102EC0000014014077B581B0044615460298A0620F
|
||||
:102ED000A58500202064222084F83E002A48A16BAA
|
||||
:102EE000C8632A48A16B08642948A16BC864002004
|
||||
:102EF000A16B086502AE32682368191D2B46A06BD2
|
||||
:102F0000FDF764FF00BF002000902068006800907B
|
||||
:102F100020684068009000BF00BF00BF002084F818
|
||||
:102F20003C0000BF206970B100BF00BF21680C31B8
|
||||
:102F300051E8001F41F4807021680C3141E8000223
|
||||
:102F4000002AF3D100BF00BF00BF2168143151E84F
|
||||
:102F5000001F41F001002168143141E80002002AFD
|
||||
:102F6000F3D100BF00BF00BF2168143151E8001F3A
|
||||
:102F700041F040002168143141E80002002AF3D1F9
|
||||
:102F800000BF002004B070BDB9290008692A0008FC
|
||||
:102F900069290008014691F83D00212828D1886858
|
||||
:102FA000B0F5805F0BD1086948B90A6A1088C0F390
|
||||
:102FB00008000B685860086A801C086205E00B6A0C
|
||||
:102FC000581C086218780B685860C88C401E80B284
|
||||
:102FD000C88458B90868C06820F080000B68D860C1
|
||||
:102FE0000868C06840F040000B68D8600020704757
|
||||
:102FF0000220FCE710B50248FEF7B4FE10BD000049
|
||||
:103000006003002010B50248FEF7ACFE10BD0000C2
|
||||
:10301000A403002000BFFEE702480068C0F30220BE
|
||||
:10302000704700000CED00E010B5002804DB0A0733
|
||||
:10303000130E054A135406E00A07140E034A00F063
|
||||
:103040000F031B1FD45410BD00E400E018ED00E096
|
||||
:1030500010B50D49086A80470C48416B88470C48F9
|
||||
:10306000416B88470B48416B88470B49086880478C
|
||||
:103070000A480B49C268082090470A4948688047B7
|
||||
:1030800009490868804710BD7C010020F801002034
|
||||
:103090004802002098020020700100208C000020CF
|
||||
:1030A0002C00002010030020A800002010B50349C8
|
||||
:1030B0000869804700F00EFC10BD00008C00002065
|
||||
:1030C000034A12689080024A1268916070470000BB
|
||||
:1030D000A400002010B51A480068806800B910BD2F
|
||||
:1030E000002425E016480068806804EB440110F8CD
|
||||
:1030F0002100D0B1002012490968896804EB44021C
|
||||
:1031000001F822000E480068806804EB440100EBDF
|
||||
:103110008100806800B909E009490968896804EB01
|
||||
:10312000440201EB82018868804700BF601C84B2C2
|
||||
:10313000034800688088A042D4DC00BFCFE70000CD
|
||||
:10314000A400002010B501462F4A12681288521CB4
|
||||
:103150002D4B1B681A802C4A12681288B2F57A7FB0
|
||||
:1031600006DB294A12685288521C274B1B685A807A
|
||||
:10317000254A1268926802B910BD00203CE0224A3C
|
||||
:103180001268926800EB400302EB830252888AB314
|
||||
:103190001D4A1268926800EB400302EB83025288DA
|
||||
:1031A000521E194B1B689B6800EB400403EB840321
|
||||
:1031B0005A80154A1268926800EB400302EB8302C2
|
||||
:1031C0005288BAB90122104B1B689B6800EB40047F
|
||||
:1031D00003F824200C4A1268926800EB400302EBCB
|
||||
:1031E00083029288084B1B689B6800EB400403EB4A
|
||||
:1031F00084035A80421C90B2034A12689288824229
|
||||
:10320000BDDC00BFB8E70000A40000200148007842
|
||||
:10321000704700006C01002010B5002007490870BD
|
||||
:10322000002210210648FDF7F9FF00221021054871
|
||||
:10323000FDF7F4FF002000F007F810BD6C0100203E
|
||||
:1032400000100240000C02402DE9F04180460025AC
|
||||
:10325000102D01DBBDE8F0812C4805702C48465D3F
|
||||
:103260002C48475D002431E046FA04F000F00100EC
|
||||
:1032700048B1294A32F81410284A52F82400012291
|
||||
:10328000FDF7CCFF08E0244A32F81410234A52F824
|
||||
:1032900024000022FDF7C2FF47FA04F000F001000D
|
||||
:1032A00048B11F4A32F814101E4A52F82400012275
|
||||
:1032B000FDF7B4FF08E01A4A32F81410194A52F820
|
||||
:1032C00024000022FDF7AAFF601CC4B2042CCBDB53
|
||||
:1032D000002416E0AC4209D1134A32F81410134A04
|
||||
:1032E00052F824000022FDF799FF08E00E4A32F858
|
||||
:1032F00014100E4A52F824000122FDF78FFF601CC3
|
||||
:10330000C4B2102CE6DB00BFA4E700006C01002073
|
||||
:103310004C0100205C010020CC000020BC000020FB
|
||||
:10332000E4000020D40000202C010020EC0000204C
|
||||
:1033300010B586B00446002001900B2003900120B8
|
||||
:1033400004900220059000200090694601A8FDF736
|
||||
:103350009BFD06B010BD000010B5064948688047C7
|
||||
:1033600010220549054800F055F802494868804791
|
||||
:1033700010BD0000B00000208C01002000000E08ED
|
||||
:1033800070B510220E49A1F11000FDF704F8A8B1A4
|
||||
:103390000C494868804772B6102209490A4800F073
|
||||
:1033A0005DF804462CB906481038054610352ECD78
|
||||
:1033B0002EC062B603494868804700BF70BD000058
|
||||
:1033C0008C010020B000002000000E0810B5FFF7AF
|
||||
:1033D000D7FF10BD10B5FFF7BFFF0C480068808B0A
|
||||
:1033E000B0F57A7F03DD282108480068818307480B
|
||||
:1033F0000068C08B102803DD102104480068C183D9
|
||||
:103400000348044610341ECC1EC010BDAC01002081
|
||||
:103410007C0100202DE9F84103460C4621461D465B
|
||||
:10342000960802F00307002005E055F820C0C1F817
|
||||
:1034300000C0091D401CB042F7D36FB155F82600FB
|
||||
:103440000090EC46002004E01CF8008001F80080A9
|
||||
:10345000401CB842F8D300BFBDE8F8812DE9FC5FFD
|
||||
:1034600007468846154600244646A808019005F000
|
||||
:103470000309BA46FDF7B4FD3846FFF759FF044685
|
||||
:1034800024B1FDF757FD2046BDE8FC9F4FF0000B2F
|
||||
:103490000FE0D6F800C06246002351460220FDF737
|
||||
:1034A00053FD044604B107E00AF1040A361D0BF18E
|
||||
:1034B000010B01988345ECD300BFB4B9B9F1000FFB
|
||||
:1034C00013D04FF0FF300090EB46002003E0315C5A
|
||||
:1034D0000BF80010401C4845F9D300235146022048
|
||||
:1034E000009AFDF731FD044600BFFDF723FD20469D
|
||||
:1034F000CAE770477047000010B5002409E0322089
|
||||
:1035000000F0EBF84FF480710348FDF77DFE601C7E
|
||||
:10351000C4B2142CF3DB10BD0010024010B54FF400
|
||||
:1035200080710248FDF770FE10BD000000100240DF
|
||||
:103530002DE9F0410446884617460020A074A08B70
|
||||
:10354000B84200DAA78B3A4641466069FCF74FFF64
|
||||
:103550003A4661696068FEF757FFFDF765FE05466C
|
||||
:1035600008E0FDF761FE0646701BC82802D901205D
|
||||
:10357000A07402E0A07C0028F3D000BFBDE8F08179
|
||||
:1035800010B5044660680068C06840F010006168CB
|
||||
:103590000968C860E28BA1696068FEF7CDFA10BDCA
|
||||
:1035A00070B504466068FEF731FBE08BE16809689E
|
||||
:1035B0004968401A86B206B970BD002506E0A269C6
|
||||
:1035C0005119206800F04BF9681C85B2B542F6DB52
|
||||
:1035D000204600F041F8E28BA1696068FEF7ACFA82
|
||||
:1035E00000BFE9E770B50446A08C618C884227DAF9
|
||||
:1035F000206880892084204600F034F8208CE18BFC
|
||||
:1036000088421DDC208CD8B1208C40F6B83188422D
|
||||
:1036100003D9206800F0D7F812E0002506E0094A37
|
||||
:103620005119206800F0D7F8681C85B2208CA84298
|
||||
:10363000F5DCA06C20B1218C22460248A36C98478F
|
||||
:1036400070BD0000C06F002090F82620012A02D132
|
||||
:10365000428C0A4442847047012180F826100021E0
|
||||
:1036600041847047002180F8261041847047000093
|
||||
:103670002DE9F04104460F4616461448844204D111
|
||||
:10368000012204211248FDF7C9FDA08B96FBF0F042
|
||||
:103690001FFA80F8002507E0A28B02FB0571204687
|
||||
:1036A000FFF746FF681C85B24545F5DBA08B00FBA4
|
||||
:1036B000156086B20EB9BDE8F081A08B00FB0571E4
|
||||
:1036C00032462046FFF734FF00BFF4E7980200209F
|
||||
:1036D0000000024001218174704710B50446204665
|
||||
:1036E000FDF7BEFB10BD2DE9F04704460D4691469F
|
||||
:1036F000052D01DABDE8F0872078AA2802D160788C
|
||||
:10370000552800D0F6E7681E215CA81E205C41EA1F
|
||||
:103710000028A81E81B2204600F037F80646301275
|
||||
:1037200040EA062086B2464500D0E3E7A778032F9B
|
||||
:1037300000D100BF00BFDDE701480249886470473F
|
||||
:10374000E7360008F8010020FDF780FDFFF796F846
|
||||
:10375000FEF72CFFFEF7D6FEFFF71AF8FFF734F856
|
||||
:10376000FFF74EF8FFF774FC01E0FFF79FFCFCE762
|
||||
:1037700070B503460C4603E014F8015B03F8015BE7
|
||||
:10378000151EA2F10102F7D170BD30B502464FF609
|
||||
:10379000FF7012E012F8014B6040002308E000F0D7
|
||||
:1037A000010424B14AF2010484EA600000E0401000
|
||||
:1037B0001C465D1CABB2082CF1DB0C1EA1F101050F
|
||||
:1037C000A9B2E7D130BD00B9704700214161016164
|
||||
:1037D000C16000BFF8E770B504460D460CB9002083
|
||||
:1037E00070BDE06808B90020FAE745B1D4E90006E9
|
||||
:1037F000236903FB060132462846FFF7B9FF20691B
|
||||
:10380000401CA16890FBF1F201FB12002061E0680E
|
||||
:10381000401EE0600120E3E770B504460D460CB998
|
||||
:10382000002070BDD4E90210884201D10020F8E7E1
|
||||
:1038300045B1D4E90016636903FB061032462946F8
|
||||
:10384000FFF796FF6069401CA16890FBF1F201FB55
|
||||
:1038500012006061E068401CE0600120E1E770B5A3
|
||||
:1038600004460D460CB9002070BDD4E90210884210
|
||||
:1038700004DA29462046FFF7CFFFF5E745B1D4E942
|
||||
:103880000016636903FB061032462946FFF770FFF6
|
||||
:103890006069401CA16890FBF1F201FB12006061BD
|
||||
:1038A0002069401CA16890FBF1F201FB120020612D
|
||||
:1038B0000120D9E770477047704770477047000094
|
||||
:1038C00010B502494868804710BD0000A8000020DC
|
||||
:1038D0007047000010B50548C16C88470448C16CAA
|
||||
:1038E00088470448C16C884710BD0000F8010020DB
|
||||
:1038F00048020020980200204FF04070E1EE100ACC
|
||||
:1039000070470006101600061016000000000000A8
|
||||
:10391000000001020304060708090000000001027C
|
||||
:103920000304000056312E300000000031313532E2
|
||||
:103930003030000031393230300000003537363059
|
||||
:1039400030000000393630300000000034383030AC
|
||||
:1039500000000000434F4D3100000000434F4D3246
|
||||
:1039600000000000434F4D3300000000434F4D3432
|
||||
:103970000000000094390008000000201C03000033
|
||||
:10398000C40100081C3B00081C030020BC88000088
|
||||
:103990002002000841321042011324F4132439009C
|
||||
:1039A0000A120856302E3030312E303A012813D505
|
||||
:1039B0003822081203320A3AB70C120732323AD1CF
|
||||
:1039C0000C120B32643AB50C120D32C83ABB0C1211
|
||||
:1039D000111AF43D3AC10C121323E8033AB90C1240
|
||||
:1039E0001723D0073ABD0CA113C1301B08D504130F
|
||||
:1039F000453123088C1420F93414081D351B08F5B3
|
||||
:103A0000081AF3041AB01411AC100240041A40133F
|
||||
:103A100012081A04D159144A04042A02B629051AB4
|
||||
:103A20000810A9040A1D0C04594079041944128095
|
||||
:103A300022402905197E396D29585910100E0D0E96
|
||||
:103A40000F0C0B0A090807040302011B06051016D8
|
||||
:103A500008090A0B0C1F010203040506E6211319CD
|
||||
:103A6000321B0849041A0D04012013D5331B0881A9
|
||||
:103A7000041A59041ACD04137C01142048061A2094
|
||||
:103A8000CE11F3B80B0A1412180B14B81D181AB083
|
||||
:103A90004C136003142008051C20A804BE19C7138A
|
||||
:103AA000702914202835FC20B80B5E511381351481
|
||||
:103AB0000871361B08D5041AA10C1A4908411AE5E9
|
||||
:103AC0000C1AC8501AA4501AC8501A680429501366
|
||||
:103AD000E0400C1020984C502B980220091C501AE2
|
||||
:103AE000E0501A1C501A489C1AE80829501B5058DC
|
||||
:103AF000B00A3464A01354391B085C041A64041A15
|
||||
:103B00006C041A4C041A44041A34041A3C041A2C87
|
||||
:0C3B100004811339371B081074000000FA
|
||||
:040000050800018965
|
||||
:00000001FF
|
||||
@@ -1,7 +0,0 @@
|
||||
#include "app_com.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#ifndef _APP_COM_H_
|
||||
#define _APP_COM_H_
|
||||
|
||||
#include "main.h"
|
||||
#include "app_leakage.h"
|
||||
#include "bsp_uart.h"
|
||||
|
||||
#define APP_COM_NUM (4)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u8 baudrate; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
}app_com_flash_data_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
app_com_flash_data_t flash_data; /*flash<73><68><EFBFBD><EFBFBD>*/
|
||||
u16 device_num; /*<2A><EFBFBD><F3B6A8B5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
|
||||
u8 device_index[APP_LEAKAGE_SUB_DEVICE_NUM]; /*<2A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
bsp_uart_t *uart; /*<2A><EFBFBD><F3B6A8B5>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
}app_com_class_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
app_com_class_t com_class[APP_COM_NUM];
|
||||
}app_com_t;
|
||||
|
||||
#endif
|
||||
@@ -1,100 +0,0 @@
|
||||
#include "app_leakage.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
|
||||
|
||||
app_leakage_t leakage =
|
||||
{
|
||||
|
||||
};
|
||||
app_leakage_t *p_leakage = &leakage;
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>ֵ<EFBFBD>һ<EFBFBD><D2BB>*/
|
||||
static void app_leakage_region_classify(void)
|
||||
{
|
||||
u16 i,j;
|
||||
u8 add_region_flag;
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
p_leakage->region_num = 0;
|
||||
p_leakage->sub_device_num = 0;
|
||||
memset(p_leakage->region_data,0,sizeof(p_leakage->region_data));
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ*/
|
||||
for(i=0;i<APP_LEAKAGE_SUB_DEVICE_NUM;i++)
|
||||
{
|
||||
add_region_flag = 1; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
/*<2A>豸ʹ<E8B1B8><CAB9>*/
|
||||
if(ENABLE == p_leakage->sub_device_data[i].flash_data.state)
|
||||
{
|
||||
p_leakage->sub_device_num++;/*<2A><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>++*/
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
for(j=0;j<APP_LEAKAGE_SUB_DEVICE_NUM;j++)
|
||||
{
|
||||
if(0 == memcmp(p_leakage->region_data[j].name,p_leakage->sub_device_data[i].flash_data.region_name, APP_LEAKAGE_STRING_NANE_LEN))/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ*/
|
||||
{
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸*/
|
||||
p_leakage->region_data[j].sub_device_index[p_leakage->region_data[j].leakage_num] = i;/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
|
||||
p_leakage->region_data[j].leakage_num++; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>++*/
|
||||
add_region_flag = 0;/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*û<><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>*/
|
||||
if(add_region_flag)/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
memcpy(p_leakage->region_data[p_leakage->region_num].name,p_leakage->sub_device_data[i].flash_data.region_name, APP_LEAKAGE_STRING_NANE_LEN);
|
||||
p_leakage->region_data[p_leakage->region_num].sub_device_index[p_leakage->region_data[p_leakage->region_num].leakage_num] = i;/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
|
||||
p_leakage->region_data[p_leakage->region_num].leakage_num++; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>++*/
|
||||
p_leakage->region_num++; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>++*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A>쳣״̬<D7B4>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>*/
|
||||
void app_leakage_task(void)
|
||||
{
|
||||
u16 i,j,k,sub_device_index;
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD>쳣<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
for(i=0;i<p_leakage->region_num;i++)
|
||||
{
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD>豸*/
|
||||
p_leakage->region_data[i].leakage_num = 0;
|
||||
p_leakage->region_data[i].open_num = 0;
|
||||
p_leakage->region_data[i].time_out_num = 0;
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸*/
|
||||
for(j=0;j<p_leakage->region_data[i].leakage_num;j++)
|
||||
{
|
||||
/*<2A><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>*/
|
||||
sub_device_index = p_leakage->region_data[i].sub_device_index[j];
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>*/
|
||||
for(k=0;k<APP_LEAKAGE_SUB_DEVICE_CH_NUM;k++)
|
||||
{
|
||||
/*ͨѶ<CDA8><D1B6>ʱ*/
|
||||
if(p_leakage->sub_device_data[sub_device_index].ch_data[k].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
|
||||
{
|
||||
p_leakage->region_data[i].time_out_num++;
|
||||
break;
|
||||
}
|
||||
/*<2A>ϴ<EFBFBD>*/
|
||||
else if(p_leakage->sub_device_data[sub_device_index].ch_data[k].state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
|
||||
{
|
||||
p_leakage->region_data[i].open_num++;
|
||||
break;
|
||||
}
|
||||
/*©Һ*/
|
||||
else if(p_leakage->sub_device_data[sub_device_index].ch_data[k].state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
|
||||
{
|
||||
p_leakage->region_data[i].leakage_num++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
#include "bsp_Led.h"
|
||||
#include "app_timer.h"
|
||||
|
||||
#define LED1_ON HAL_GPIO_WritePin (LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET)
|
||||
#define LED1_OFF HAL_GPIO_WritePin (LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET)
|
||||
#define LED1_TOGGLE HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin)
|
||||
|
||||
#define LED2_ON HAL_GPIO_WritePin (LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET)
|
||||
#define LED2_OFF HAL_GPIO_WritePin (LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET)
|
||||
#define LED2_TOGGLE HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin)
|
||||
|
||||
#define LED3_ON HAL_GPIO_WritePin (LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET)
|
||||
#define LED3_OFF HAL_GPIO_WritePin (LED3_GPIO_Port, LED3_Pin, GPIO_PIN_SET)
|
||||
#define LED3_TOGGLE HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin)
|
||||
|
||||
|
||||
static void bsp_led_init(void);
|
||||
static void bsp_led_task(void);
|
||||
|
||||
bsp_led_t led =
|
||||
{
|
||||
.init = bsp_led_init,
|
||||
.task = bsp_led_task,
|
||||
};
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static void bsp_led_init(void)
|
||||
{
|
||||
for(u8 i = 0;i < 20;i++)
|
||||
{
|
||||
delay_ms(50);
|
||||
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
|
||||
}
|
||||
}
|
||||
|
||||
static void bsp_led_task(void)
|
||||
{
|
||||
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
|
||||
}
|
||||
@@ -1,604 +0,0 @@
|
||||
#include "GUI_tjc_hmi.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include "proto_modbus_lib.h"
|
||||
|
||||
|
||||
#include "bsp_Flash.h" // <20><><EFBFBD><EFBFBD>Flash<73><68><EFBFBD><EFBFBD>
|
||||
#include "bsp_uart.h"
|
||||
|
||||
#include "app_leakage.h"
|
||||
|
||||
/*<2A><><EFBFBD>ڷ<EFBFBD><DAB7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
#define HMI_TX_BUFFER_NUM (2048)
|
||||
/*<2A>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><C6B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
#define GUI_TJC_HMI_TEXT_BUFFER_NUM (256)
|
||||
|
||||
/*֡ͷ*/
|
||||
#define HMI_PROTO_FRAME_HEADER1 (0xAA)
|
||||
#define HMI_PROTO_FRAME_HEADER2 (0x55)
|
||||
/*<2A><><EFBFBD><EFBFBD>*/
|
||||
#define HMI_PROTO_CMD_GET (0x03) /*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
#define HMI_PROTO_CMD_SET (0x10) /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ*/
|
||||
/*<2A><><EFBFBD><EFBFBD>*/
|
||||
#define HMI_PROTO_GUI_MAIN (0x10)/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define HMI_PROTO_GUI_CURR_ALARM (0x11)/*ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define HMI_PROTO_GUI_DETAIL_MAIN (0x12)/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F>ϸ<EFBFBD><CFB8>Ϣ */
|
||||
#define HMI_PROTO_GUI_LOGIN (0x13)/*<2A><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD> */
|
||||
#define HMI_PROTO_GUI_HISTORY_ALARM (0x14)/*<2A><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define HMI_PROTO_GUI_TCP_CONFIG (0x15)/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD> */
|
||||
#define HMI_PROTO_GUI_DEVICE_CONFIG (0x16)/*<2A>豸<EFBFBD><E8B1B8><EFBFBD>ý<EFBFBD><C3BD><EFBFBD> */
|
||||
#define HMI_PROTO_GUI_HELP (0x17)/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
#define HMI_PROTO_ASCII_RX_DELINITER (0xAA)/*<2A><><EFBFBD>շָ<D5B7><D6B8><EFBFBD>*/
|
||||
|
||||
#define HMI_PROTO_ASCII_TX_DELINITER (0xFF)/*<2A><><EFBFBD>ͷָ<CDB7><D6B8><EFBFBD>*/
|
||||
#define HMI_PROTO_ASCII_TX_DELINITER_NUM (3)/*<2A><><EFBFBD>ͷָ<CDB7><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
|
||||
|
||||
static void gui_tjc_hmi_init(void);
|
||||
static void gui_tjc_hmi_communication_data_analysis(u8 *p_data, u16 len, void *rx_uart);
|
||||
|
||||
/*<2A><><EFBFBD>ڷ<EFBFBD><DAB7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static u8 hmi_tx_buffer[HMI_TX_BUFFER_NUM];
|
||||
/*<2A>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><C6B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static char gui_tjc_hmi_text_buffer[GUI_TJC_HMI_TEXT_BUFFER_NUM];
|
||||
/*<2A>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD> <20>˿ں<CBBF>*/
|
||||
static char *hmi_proto_string_com[] =
|
||||
{
|
||||
"COM1",
|
||||
"COM2",
|
||||
"COM3",
|
||||
"COM4"
|
||||
};
|
||||
|
||||
/*<2A>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static char *hmi_proto_string_baudrate[] =
|
||||
{
|
||||
"4800",
|
||||
"9600",
|
||||
"19200",
|
||||
"57600",
|
||||
"115200",
|
||||
};
|
||||
|
||||
|
||||
static bsp_uart_t * p_rx_uart = NULL;
|
||||
|
||||
gui_tjc_hmi_t tjc_hmi =
|
||||
{
|
||||
.init = gui_tjc_hmi_init,
|
||||
};
|
||||
|
||||
gui_tjc_hmi_t *p_tjc_hmi = &tjc_hmi;
|
||||
|
||||
|
||||
|
||||
/*<2A><>ĻЭ<C4BB><D0AD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>*/
|
||||
static void gui_tjc_hmi_init(void)
|
||||
{
|
||||
com_uart1.rx_data_analysis = gui_tjc_hmi_communication_data_analysis;
|
||||
}
|
||||
|
||||
|
||||
/*<2A><><EFBFBD>ͽӿ<CDBD>*/
|
||||
static void gui_tjc_hmi_data_send(u8 *p_data,u16 len)
|
||||
{
|
||||
if(p_rx_uart != NULL)
|
||||
{
|
||||
p_rx_uart->send(p_rx_uart,p_data,len);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*<2A><><EFBFBD>ö<EFBFBD>Ӧ<EFBFBD>Ŀؼ<C4BF>
|
||||
x<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>
|
||||
y<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>
|
||||
buffer<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>buffer
|
||||
format<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
...<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
static u16 gui_tjc_hmi_tx_text_display(u16 x,u16 y,char *buffer,const char *format,...)
|
||||
{
|
||||
u16 i,len;
|
||||
s16 state;
|
||||
va_list arg;
|
||||
|
||||
/*<2A><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
memset(gui_tjc_hmi_text_buffer,0,sizeof(gui_tjc_hmi_text_buffer));
|
||||
|
||||
va_start(arg,format);
|
||||
/*<2A><>ʽ<EFBFBD><CABD>ת<EFBFBD><D7AA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>*/
|
||||
state = vsnprintf(gui_tjc_hmi_text_buffer,GUI_TJC_HMI_TEXT_BUFFER_NUM,format,arg);
|
||||
if(-1 == state || state > GUI_TJC_HMI_TEXT_BUFFER_NUM)
|
||||
{
|
||||
va_end(arg);
|
||||
printf("Length REEOR");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*ƴ<><C6B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>*/
|
||||
sprintf(buffer,"t%d_%d.txt=\"%s\"",x,y,gui_tjc_hmi_text_buffer);
|
||||
len = strlen(buffer);
|
||||
for(i=0;i<HMI_PROTO_ASCII_TX_DELINITER_NUM;i++)
|
||||
{
|
||||
buffer[len + i] = HMI_PROTO_ASCII_TX_DELINITER;
|
||||
}
|
||||
va_end(arg);
|
||||
return len + 3;
|
||||
}
|
||||
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ*/
|
||||
static void gui_tjc_hmi_main_send(u8 cmd,u8 opa,u8 *p_data)
|
||||
{
|
||||
/*ÿҳ<C3BF><D2B3>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
#define MAIN_PAGE_SUB_DEVICE_NUM (4)
|
||||
|
||||
u16 len = 0,i,j,x,y,index;
|
||||
u8 page_num,remain_region_num;
|
||||
|
||||
memset(hmi_tx_buffer,0,sizeof(hmi_tx_buffer));
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
page_num = leakage.region_num / MAIN_PAGE_SUB_DEVICE_NUM;
|
||||
remain_region_num = leakage.region_num % MAIN_PAGE_SUB_DEVICE_NUM;/*ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
if(remain_region_num > 0)
|
||||
{
|
||||
page_num++;
|
||||
}
|
||||
|
||||
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ*/
|
||||
{
|
||||
if(p_tjc_hmi->page.main_index == page_num - 1 && remain_region_num >0)/*<2A><>ʾʣ<CABE><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
for(j=0;j<remain_region_num;j++)
|
||||
{
|
||||
index = p_tjc_hmi->page.main_index * MAIN_PAGE_SUB_DEVICE_NUM + j;
|
||||
x = j;
|
||||
/*<2A><><EFBFBD><EFBFBD>*/
|
||||
y = 0;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.region_data[index].name);
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
y = 1;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].sub_device_num);
|
||||
/*©Һ<C2A9><D2BA><EFBFBD><EFBFBD>*/
|
||||
y = 2;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].leakage_num);
|
||||
/*<2A>ϴ<EFBFBD>*/
|
||||
y = 3;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].open_num);
|
||||
/*ͨѶ*/
|
||||
y = 4;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].time_out_num);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(j=0;j<MAIN_PAGE_SUB_DEVICE_NUM;j++)
|
||||
{
|
||||
index = p_tjc_hmi->page.main_index*MAIN_PAGE_SUB_DEVICE_NUM + j;
|
||||
x = j;
|
||||
/*<2A><><EFBFBD><EFBFBD>*/
|
||||
y = 0;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.region_data[index].name);
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
y = 1;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].sub_device_num);
|
||||
/*©Һ<C2A9><D2BA><EFBFBD><EFBFBD>*/
|
||||
y = 2;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].leakage_num);
|
||||
/*<2A>ϴ<EFBFBD>*/
|
||||
y = 3;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].open_num);
|
||||
/*ͨѶ*/
|
||||
y = 4;
|
||||
len = gui_tjc_hmi_tx_text_display(x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].time_out_num);
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
else if(HMI_PROTO_CMD_SET == cmd)/*<2A><><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x03:/*<2A><>ҳ*/
|
||||
{
|
||||
if(0x01 == p_data[0])
|
||||
{
|
||||
if(page_num - 1 <= p_tjc_hmi->page.main_index)
|
||||
{
|
||||
p_tjc_hmi->page.main_index = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
p_tjc_hmi->page.main_index++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if(0 == p_tjc_hmi->page.main_index)
|
||||
{
|
||||
p_tjc_hmi->page.main_index = page_num - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
p_tjc_hmi->page.main_index--;
|
||||
}
|
||||
}
|
||||
}
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
}
|
||||
|
||||
/*ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ*/
|
||||
static void gui_tjc_hmi_curr_alarm_send(u8 cmd,u8 opa,u8 *p_data)
|
||||
{
|
||||
u16 len = 0,i;
|
||||
|
||||
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
else if(HMI_PROTO_CMD_SET == cmd)/*<2A><><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
}
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static void gui_tjc_hmi_detail_main_send(u8 cmd,u8 opa,u8 *p_data)
|
||||
{
|
||||
u16 len = 0,i;
|
||||
|
||||
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
else if(HMI_PROTO_CMD_SET == cmd)/*<2A><><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
}
|
||||
/*<2A><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>*/
|
||||
static void gui_tjc_hmi_login_send(u8 cmd,u8 opa,u8 *p_data)
|
||||
{
|
||||
u16 len = 0,i;
|
||||
|
||||
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
else if(HMI_PROTO_CMD_SET == cmd)/*<2A><><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data)
|
||||
{
|
||||
u16 len = 0,i;
|
||||
|
||||
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
else if(HMI_PROTO_CMD_SET == cmd)/*<2A><><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>*/
|
||||
static void gui_tjc_hmi_tcp_config_send(u8 cmd,u8 opa,u8 *p_data)
|
||||
{
|
||||
u16 len = 0,i;
|
||||
|
||||
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
else if(HMI_PROTO_CMD_SET == cmd)/*<2A><><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A>豸<EFBFBD><E8B1B8><EFBFBD>ý<EFBFBD><C3BD><EFBFBD> */
|
||||
static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
|
||||
{
|
||||
u16 len = 0,i;
|
||||
|
||||
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
else if(HMI_PROTO_CMD_SET == cmd)/*<2A><><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
}
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static void gui_tjc_hmi_help_send(u8 cmd,u8 opa,u8 *p_data)
|
||||
{
|
||||
u16 len = 0,i;
|
||||
|
||||
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
else if(HMI_PROTO_CMD_SET == cmd)/*<2A><><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
switch(opa)
|
||||
{
|
||||
case 0x01:
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x02:
|
||||
{
|
||||
|
||||
}break;
|
||||
default:return;
|
||||
}
|
||||
len = strlen((char *)hmi_tx_buffer);
|
||||
gui_tjc_hmi_data_send(hmi_tx_buffer,len);
|
||||
}
|
||||
}
|
||||
/*<2A><>Ļָ<C4BB><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static void gui_tjc_hmi_communication_data_analysis(u8 *p_data, u16 len, void *rx_uart)
|
||||
{
|
||||
u8 cmd,data,gui_id,opa,*p_offset_data;
|
||||
u16 i,modbus_crc16,check_crc16;
|
||||
/*<2A><><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD>*/
|
||||
if(len < 5)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
/*<2A><><EFBFBD><EFBFBD>֡ͷ*/
|
||||
if(p_data[0] != HMI_PROTO_FRAME_HEADER1 || p_data[1] != HMI_PROTO_FRAME_HEADER2)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
/*У<><D0A3>λ*/
|
||||
check_crc16 = p_data[len-2] << 8 | p_data[len-1];
|
||||
modbus_crc16 = modbus_lib_crc16(p_data,len-2);
|
||||
modbus_crc16 = (modbus_crc16 >> 8) | (modbus_crc16 << 8);
|
||||
if(modbus_crc16 != check_crc16)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
/*CMD*/
|
||||
cmd = p_data[2];
|
||||
if(cmd != HMI_PROTO_CMD_GET || HMI_PROTO_CMD_GET != HMI_PROTO_CMD_SET)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
gui_id = p_data[3]; /*gui_id*/
|
||||
opa = p_data[4]; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
p_offset_data = &p_data[5]; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
p_rx_uart = (bsp_uart_t *)rx_uart; /*<2A><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>*/
|
||||
switch(gui_id)
|
||||
{
|
||||
case HMI_PROTO_GUI_MAIN :
|
||||
{
|
||||
gui_tjc_hmi_main_send(cmd,opa,p_offset_data);
|
||||
}break;
|
||||
case HMI_PROTO_GUI_CURR_ALARM :
|
||||
{
|
||||
gui_tjc_hmi_curr_alarm_send(cmd,opa,p_offset_data);
|
||||
}break;
|
||||
case HMI_PROTO_GUI_DETAIL_MAIN :
|
||||
{
|
||||
gui_tjc_hmi_detail_main_send(cmd,opa,p_offset_data);
|
||||
}break;
|
||||
case HMI_PROTO_GUI_LOGIN :
|
||||
{
|
||||
gui_tjc_hmi_main_send(cmd,opa,p_offset_data);
|
||||
}break;
|
||||
case HMI_PROTO_GUI_HISTORY_ALARM :
|
||||
{
|
||||
gui_tjc_hmi_history_alarm_send(cmd,opa,p_offset_data);
|
||||
}break;
|
||||
case HMI_PROTO_GUI_TCP_CONFIG :
|
||||
{
|
||||
gui_tjc_hmi_tcp_config_send(cmd,opa,p_offset_data);
|
||||
}break;
|
||||
case HMI_PROTO_GUI_DEVICE_CONFIG :
|
||||
{
|
||||
gui_tjc_hmi_device_config_send(cmd,opa,p_offset_data);
|
||||
}break;
|
||||
case HMI_PROTO_GUI_HELP :
|
||||
{
|
||||
gui_tjc_hmi_help_send(cmd,opa,p_offset_data);
|
||||
}break;
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
#ifndef _GUI_TJC_HMI_H_
|
||||
#define _GUI_TJC_HMI_H_
|
||||
|
||||
#include "main.h"
|
||||
|
||||
/*ҳ<><D2B3>*/
|
||||
typedef struct
|
||||
{
|
||||
u8 main_index;
|
||||
u8 deliniter_main_index;
|
||||
|
||||
}gui_tjc_hmi_page_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gui_tjc_hmi_page_t page;
|
||||
void (*init)(void);
|
||||
}gui_tjc_hmi_t;
|
||||
|
||||
extern gui_tjc_hmi_t tjc_hmi;
|
||||
|
||||
#endif
|
||||
@@ -1,412 +0,0 @@
|
||||
#include "proto_modbus_master_tdlas.h"
|
||||
#include "string.h"
|
||||
#include "stdio.h"
|
||||
|
||||
#include "app.h"
|
||||
#include "app_timer.h"
|
||||
|
||||
#include "bsp_Uart.h"
|
||||
#include "bsp_74HC4067.h"
|
||||
#include "bsp_Flash.h"
|
||||
|
||||
#include "proto_print.h"
|
||||
#include "proto_modbus_lib.h"
|
||||
|
||||
#define TDLAS_MODBUS_ID (0xe8)
|
||||
#define TDLAS_DATA_ENDIAN (LITTLE_ENDIAN) /*<2A><><EFBFBD>ô<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>*/
|
||||
|
||||
#define PROTO_TDLAS_GET_CURR_DATA_START_ADDR (20000)
|
||||
#define PROTO_TDLAS_SET_ZERO_CALIB_START_ADDR (12)
|
||||
#define PROTO_TDLAS_SET_SPAN_CALIB_START_ADDR (13)
|
||||
#define PROTO_TDLAS_GET_RESET_START_ADDR (0x0000)
|
||||
#define PROTO_TDLAS_GET_FAC_CALIB_START_ADDR (11010)
|
||||
#define PROTO_TDLAS_GET_FAC_CALIB_PARA_SET_START_ADDR (11000)
|
||||
#define PROTO_TDLAS_GET_FAC_CALIB_DATA_START_ADDR (250)
|
||||
|
||||
|
||||
static void proto_tdlas_init(void);
|
||||
static void proto_tdlas_control_zero_calib(u16 calib_value);
|
||||
|
||||
static void proto_tdlas_control_span_calib(u16 CalibValue);
|
||||
static void proto_tdlas_control_reset(void);
|
||||
static void proto_tdlas_control_fac_calib(u16 calib_value,u8 calib_point,u8 temp_point);
|
||||
static void proto_tdlas_control_fac_calib_para_set(s16 temp,u16 press,u16 humidity);
|
||||
static void proto_tdlas_tx_task(void);
|
||||
static void proto_tdlas_rx_task(u8 *p_data,u16 len,void *other_data);
|
||||
static void proto_tdlas_control_fac_calib_data_get(u8 ch);
|
||||
|
||||
/*<2A><><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static bsp_uart_t *rx_uart = NULL;
|
||||
|
||||
proto_tdlas_t tdlas=
|
||||
{
|
||||
.modbus_id = TDLAS_MODBUS_ID,
|
||||
|
||||
.init = proto_tdlas_init,
|
||||
.tx_task = proto_tdlas_tx_task,
|
||||
.rx_task = proto_tdlas_rx_task,
|
||||
// .print = proto_tdlas_print_debug_data,
|
||||
|
||||
.control.zero_calib = proto_tdlas_control_zero_calib,
|
||||
.control.span_calib = proto_tdlas_control_span_calib,
|
||||
.control.reset = proto_tdlas_control_reset,
|
||||
.control.fac_calib = proto_tdlas_control_fac_calib,
|
||||
.control.fac_calib_para_set = proto_tdlas_control_fac_calib_para_set,
|
||||
.control.fac_calib_data_get = proto_tdlas_control_fac_calib_data_get,
|
||||
};
|
||||
|
||||
proto_tdlas_t *p_sensor = &tdlas;
|
||||
bsp_uart_t *p_use_uart = &com_uart4;
|
||||
|
||||
static void proto_tdlas_init(void)
|
||||
{
|
||||
com_uart4.rx_data_analysis = p_sensor->rx_task;
|
||||
}
|
||||
|
||||
static void proto_tdlas_send(u8 *p_data,u16 len)
|
||||
{
|
||||
com_uart4.send(&com_uart4,p_data,len);
|
||||
}
|
||||
|
||||
static void proto_sensor_switch(u8 ch)
|
||||
{
|
||||
UartCH_Config.ch_set(ch);
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>У*/
|
||||
static void proto_tdlas_control_zero_calib(u16 calib_value)
|
||||
{
|
||||
u8 i;
|
||||
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
|
||||
{
|
||||
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_ZERO_CALIB;
|
||||
p_sensor->set_data.calib_value = calib_value;
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>У */
|
||||
static void proto_tdlas_control_span_calib(u16 CalibValue)
|
||||
{
|
||||
u8 i;
|
||||
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
|
||||
{
|
||||
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_SPAN_CALIB;
|
||||
p_sensor->set_data.calib_value = CalibValue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*<2A>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
static void proto_tdlas_control_reset(void)
|
||||
{
|
||||
u8 i;
|
||||
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
|
||||
{
|
||||
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_RESET;
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD>ұ궨*/
|
||||
static void proto_tdlas_control_fac_calib(u16 calib_value,u8 calib_point,u8 temp_point)
|
||||
{
|
||||
u8 i;
|
||||
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
|
||||
{
|
||||
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_FAC_CALIB;
|
||||
p_sensor->set_data.calib_value = calib_value;
|
||||
p_sensor->set_data.calib_point = calib_point;
|
||||
p_sensor->set_data.temp_point = temp_point;
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
static void proto_tdlas_control_fac_calib_para_set(s16 temp,u16 press,u16 humidity)
|
||||
{
|
||||
u8 i;
|
||||
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
|
||||
{
|
||||
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_FAC_CALIB_PARA_SET;
|
||||
p_sensor->set_data.temp = (-1 == temp) ? p_sensor->set_data.temp : temp;
|
||||
p_sensor->set_data.humidity = (0xffff == humidity) ? p_sensor->set_data.humidity : humidity;
|
||||
p_sensor->set_data.press = (0xffff == press) ? p_sensor->set_data.press : press;
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A><>ȡ<EFBFBD>궨<EFBFBD><EAB6A8><EFBFBD><EFBFBD>*/
|
||||
static void proto_tdlas_control_fac_calib_data_get(u8 ch)
|
||||
{
|
||||
if(Usr_Flash.FlashData.modbus_read_sensor_num > ch)
|
||||
{
|
||||
p_sensor->sensor_index = ch;
|
||||
p_sensor->sys[ch].sys_state = PROTO_TDLAS_SYS_STATE_FAC_CALIB_DATA_GET;
|
||||
proto_sensor_switch(ch);
|
||||
}
|
||||
}
|
||||
|
||||
/********<2A><><EFBFBD><EFBFBD>***********/
|
||||
static void proto_tdlas_tx_curr_data_get(void)
|
||||
{
|
||||
u16 addr = PROTO_TDLAS_GET_CURR_DATA_START_ADDR;
|
||||
u8 len = Usr_Flash.FlashData.modbus_read_reg_num;
|
||||
modbus_lib_data_read(p_sensor->modbus_id,addr,len,proto_tdlas_send);
|
||||
}
|
||||
|
||||
static void proto_tdlas_tx_zero_calib(void)
|
||||
{
|
||||
u16 addr = PROTO_TDLAS_SET_ZERO_CALIB_START_ADDR;
|
||||
u8 len = 1;
|
||||
u16 data[1];
|
||||
data[0] = 0;
|
||||
|
||||
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
|
||||
}
|
||||
|
||||
static void proto_tdlas_tx_span_calib(void)
|
||||
{
|
||||
u16 addr = PROTO_TDLAS_SET_SPAN_CALIB_START_ADDR;
|
||||
u8 len = 1;
|
||||
u16 data[1];
|
||||
data[0] = p_sensor->set_data.calib_value;
|
||||
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
|
||||
}
|
||||
|
||||
static void proto_tdlas_tx_Reset(void)
|
||||
{
|
||||
u16 addr = PROTO_TDLAS_GET_RESET_START_ADDR;
|
||||
u8 len = 1;
|
||||
u16 data[1];
|
||||
data[0] = 0x00FE;
|
||||
//modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
|
||||
}
|
||||
|
||||
static void proto_tdlas_tx_fac_calib(void)
|
||||
{
|
||||
u16 addr = PROTO_TDLAS_GET_FAC_CALIB_START_ADDR;
|
||||
u8 len = 1;
|
||||
u16 data[1];
|
||||
data[0] = p_sensor->set_data.calib_value;
|
||||
addr = addr + p_sensor->set_data.temp_point * 10 + p_sensor->set_data.calib_point;
|
||||
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
|
||||
}
|
||||
|
||||
static void proto_tdlas_tx_fac_calib_para_set(void)
|
||||
{
|
||||
u16 addr = PROTO_TDLAS_GET_FAC_CALIB_PARA_SET_START_ADDR;
|
||||
u8 len = 3;
|
||||
u16 data[3];
|
||||
|
||||
data[0] = *((u16 *)(&p_sensor->set_data.temp)); /*<2A>¶<EFBFBD>*/
|
||||
data[1] = p_sensor->set_data.press; /*ѹ<><D1B9>*/
|
||||
data[2] = p_sensor->set_data.humidity; /*ʪ<><CAAA>*/
|
||||
|
||||
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
|
||||
}
|
||||
|
||||
static void proto_tdlas_tx_fac_calib_data_get(void)
|
||||
{
|
||||
u16 addr = PROTO_TDLAS_GET_FAC_CALIB_DATA_START_ADDR;
|
||||
u8 len = 1;
|
||||
u16 data[1];
|
||||
|
||||
data[0] = 3; /*<2A>¶<EFBFBD>*/
|
||||
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
|
||||
}
|
||||
|
||||
static void proto_tdlas_tx_task(void)
|
||||
{
|
||||
u8 SendFlag = 0;
|
||||
proto_tdlas_sys_t *p_sensor_sys;
|
||||
p_sensor_sys = &p_sensor->sys[p_sensor->sensor_index];
|
||||
|
||||
if(0 == (p_sensor_sys->state_error_flag & (0x00000001 << PROTO_TDLAS_ERROR_FLAG_TIME_OUT)))
|
||||
{
|
||||
if((++p_sensor_sys->tx_time_out_count) > 8)/*ͨѶ<CDA8><D1B6>ʱ*/
|
||||
{
|
||||
p_sensor_sys->state_error_flag |= (0x00000001 << PROTO_TDLAS_ERROR_FLAG_TIME_OUT);
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
memset(&gas_data[p_sensor->sensor_index],0,sizeof(gas_data_t));
|
||||
}
|
||||
}
|
||||
|
||||
switch(p_sensor_sys->sys_state)
|
||||
{
|
||||
case PROTO_TDLAS_SYS_STATE_INIT:
|
||||
{
|
||||
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_CURR_DATA_GET:
|
||||
{
|
||||
proto_tdlas_tx_curr_data_get();
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_ZERO_CALIB:
|
||||
{
|
||||
proto_tdlas_tx_zero_calib();
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_SPAN_CALIB:
|
||||
{
|
||||
proto_tdlas_tx_span_calib();
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_RESET:
|
||||
{
|
||||
proto_tdlas_tx_Reset();
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_FAC_CALIB:
|
||||
{
|
||||
proto_tdlas_tx_fac_calib();
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_FAC_CALIB_PARA_SET:
|
||||
{
|
||||
proto_tdlas_tx_fac_calib_para_set();
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_FAC_CALIB_DATA_GET:
|
||||
{
|
||||
if(0 == p_sensor_sys->send_time)
|
||||
{
|
||||
p_use_uart->relay.flag = 1;
|
||||
proto_tdlas_tx_fac_calib_data_get();
|
||||
}
|
||||
p_sensor_sys->send_time++;
|
||||
if(p_sensor_sys->send_time > 50)
|
||||
{
|
||||
p_use_uart->relay.flag = 0;
|
||||
p_sensor_sys->send_time = 0;
|
||||
p_sensor_sys->sys_state = PROTO_TDLAS_SYS_STATE_CURR_DATA_GET;
|
||||
p_sensor->sensor_index++;
|
||||
if(p_sensor->sensor_index >= Usr_Flash.FlashData.modbus_read_sensor_num)
|
||||
{
|
||||
p_sensor->sensor_index = 0;
|
||||
}
|
||||
proto_sensor_switch(p_sensor->sensor_index);
|
||||
}
|
||||
SendFlag = 1;
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
|
||||
}break;
|
||||
}
|
||||
if(SendFlag)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
p_sensor_sys->send_time++;
|
||||
if(p_sensor_sys->send_time >= 3) /*<2A><><EFBFBD><EFBFBD><EFBFBD>쳣*/
|
||||
{
|
||||
p_sensor_sys->state_error_flag |= (0x00000001 << p_sensor_sys->sys_state);/*<2A><>¼<EFBFBD>쳣״̬*/
|
||||
p_sensor_sys->send_time = 0;
|
||||
p_sensor_sys->sys_state = PROTO_TDLAS_SYS_STATE_CURR_DATA_GET;
|
||||
p_sensor->sensor_index++;
|
||||
if(p_sensor->sensor_index >= Usr_Flash.FlashData.modbus_read_sensor_num)
|
||||
{
|
||||
p_sensor->sensor_index = 0;
|
||||
}
|
||||
proto_sensor_switch(p_sensor->sensor_index);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
static void proto_tdlas_rx_task(u8 *p_data,u16 len,void *other_data)
|
||||
{
|
||||
u8 send_time_flag = 0;
|
||||
u8 modbus_id,cmd;
|
||||
u16 check_crc16,modbus_crc16;
|
||||
u16 *p_u16_temp;
|
||||
u16 i;
|
||||
u8 *p_rx_valid;
|
||||
|
||||
proto_tdlas_sys_t *p_sensor_sys;
|
||||
p_sensor_sys = &p_sensor->sys[p_sensor->sensor_index];
|
||||
|
||||
if( p_use_uart->relay.flag == 1)
|
||||
{
|
||||
p_use_uart->relay.uart->send(p_use_uart->relay.uart,p_data,len);
|
||||
}
|
||||
|
||||
if(p_sensor->modbus_id != p_data[0])
|
||||
{
|
||||
p_data = &p_data[1];
|
||||
len -= 1;
|
||||
}
|
||||
modbus_id = *p_data;
|
||||
cmd = *(p_data+1);
|
||||
check_crc16 = p_data[len-2] << 8 | p_data[len-1];
|
||||
|
||||
if(modbus_id != p_sensor->modbus_id) return ;
|
||||
if(cmd != 0x04 && cmd != 0x06 && cmd != 0x10 && cmd != 0x41) return ;
|
||||
|
||||
modbus_crc16 = modbus_lib_crc16(p_data,len-2);
|
||||
modbus_crc16 = (modbus_crc16 >> 8) | (modbus_crc16 << 8);
|
||||
|
||||
if(check_crc16 != modbus_crc16) return ;
|
||||
|
||||
if(cmd == 0x41)
|
||||
{
|
||||
p_rx_valid = &p_data[6];
|
||||
}
|
||||
rx_uart = (bsp_uart_t *)other_data;
|
||||
|
||||
p_sensor_sys->tx_time_out_count = 0;
|
||||
p_sensor_sys->state_error_flag &= (~(0x00000001 << PROTO_TDLAS_ERROR_FLAG_TIME_OUT));
|
||||
|
||||
switch(p_sensor_sys->sys_state)
|
||||
{
|
||||
case PROTO_TDLAS_SYS_STATE_INIT:
|
||||
{
|
||||
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_CURR_DATA_GET:
|
||||
{
|
||||
p_u16_temp = (u16 *)&(gas_data[p_sensor->sensor_index]);
|
||||
for(i=0;i<Usr_Flash.FlashData.modbus_read_reg_num;i++)
|
||||
{
|
||||
p_u16_temp[i] = p_rx_valid[i * 2] << 8 | p_rx_valid[i * 2 + 1];
|
||||
}
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_ZERO_CALIB:
|
||||
{
|
||||
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_SPAN_CALIB:
|
||||
{
|
||||
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_RESET:
|
||||
{
|
||||
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_FAC_CALIB:
|
||||
{
|
||||
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_FAC_CALIB_PARA_SET:
|
||||
{
|
||||
|
||||
}break;
|
||||
case PROTO_TDLAS_SYS_STATE_FAC_CALIB_DATA_GET:
|
||||
{
|
||||
|
||||
}break;
|
||||
}
|
||||
if(send_time_flag)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
p_sensor_sys->sys_state = PROTO_TDLAS_SYS_STATE_CURR_DATA_GET;
|
||||
p_sensor_sys->state_error_flag &= (~(0x00000001 << p_sensor_sys->sys_state));/*<2A><><EFBFBD><EFBFBD><EFBFBD>쳣״̬*/
|
||||
p_sensor_sys->send_time = 0;
|
||||
p_sensor->sensor_index++;
|
||||
if(p_sensor->sensor_index >= Usr_Flash.FlashData.modbus_read_sensor_num)
|
||||
{
|
||||
p_sensor->sensor_index = 0;
|
||||
}
|
||||
proto_sensor_switch(p_sensor->sensor_index);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
#ifndef _PROTO_MODBUS_MASTER_SENSOR_H_
|
||||
#define _PROTO_MODBUS_MASTER_SENSOR_H_
|
||||
#include "main.h"
|
||||
#include "gas_data.h"
|
||||
|
||||
/*NIDR״̬*/
|
||||
#define PROTO_TDLAS_SYS_STATE_INIT (0U) /*<2A><>ʼ<EFBFBD><CABC> */
|
||||
#define PROTO_TDLAS_SYS_STATE_CURR_DATA_GET (1U) /*<2A><>ȡʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>*/
|
||||
#define PROTO_TDLAS_SYS_STATE_ZERO_CALIB (2U) /*<2A><><EFBFBD><EFBFBD>У */
|
||||
#define PROTO_TDLAS_SYS_STATE_SPAN_CALIB (3U) /*<2A><><EFBFBD><EFBFBD>У */
|
||||
#define PROTO_TDLAS_SYS_STATE_RESET (4U) /*<2A>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define PROTO_TDLAS_SYS_STATE_FAC_CALIB (5U) /*<2A><><EFBFBD>ұ궨 */
|
||||
#define PROTO_TDLAS_SYS_STATE_FAC_CALIB_PARA_SET (6U) /*<2A><><EFBFBD>ұ궨ʱ<EAB6A8>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
#define PROTO_TDLAS_SYS_STATE_FAC_CALIB_DATA_GET (7U) /*<2A><>ȡ<EFBFBD>궨<EFBFBD><EAB6A8>Ϣ*/
|
||||
|
||||
#define PROTO_TDLAS_ERROR_FLAG_TIME_OUT (30U) /*ͨѶ<CDA8><D1B6>ʱ*/
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void (*zero_calib)(u16); /*<2A><><EFBFBD><EFBFBD>У*/
|
||||
void (*span_calib)(u16); /*<2A><><EFBFBD>̵<EFBFBD>У*/
|
||||
void (*reset)(void); /*<2A>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
void (*fac_calib)(u16,u8,u8); /*<2A><><EFBFBD>ұ궨ʱ<EAB6A8><CAB1>Ũ<EFBFBD><C5A8>*/
|
||||
void (*fac_calib_para_set)(s16,u16,u16); /*<2A><><EFBFBD>ұ궨ʱ<EAB6A8><CAB1><EFBFBD>õ<EFBFBD><C3B5>¶ȡ<C2B6>ʪ<EFBFBD>ȡ<EFBFBD>ѹ<EFBFBD><D1B9>*/
|
||||
void (*fac_calib_data_get)(u8); /*<2A><><EFBFBD>ұ궨ʱ<EAB6A8><CAB1><EFBFBD>õ<EFBFBD><C3B5>¶ȡ<C2B6>ʪ<EFBFBD>ȡ<EFBFBD>ѹ<EFBFBD><D1B9>*/
|
||||
}proto_tdlas_control_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u8 sys_state;
|
||||
u16 send_time; /*<2A><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>*/
|
||||
u32 sensor_state; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬*/
|
||||
u8 print_flag; /*ʵʱ<CAB5><CAB1><EFBFBD>ݴ<EFBFBD>ӡ<EFBFBD><D3A1>־λ*/
|
||||
u32 state_error_flag; /*ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ*/
|
||||
u16 tx_time_out_count; /*Э<><D0AD>ָ<EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>*/
|
||||
}proto_tdlas_sys_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
||||
u8 calib_point;
|
||||
u8 temp_point;
|
||||
u16 calib_value;
|
||||
s16 temp;
|
||||
u16 humidity;
|
||||
u16 press;
|
||||
}proto_tdlas_set_data_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u8 modbus_id;
|
||||
|
||||
u16 sensor_index; /*<2A><>ǰ<EFBFBD><C7B0><EFBFBD>ĸ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
proto_tdlas_set_data_t set_data;
|
||||
proto_tdlas_sys_t sys[SENSOR_NUM];
|
||||
proto_tdlas_control_t control;
|
||||
|
||||
void (*init)(void);
|
||||
void (*tx_task)(void);
|
||||
void (*rx_task)(u8 *,u16,void *);
|
||||
void (*print)(void);
|
||||
void (*warm_task)(void);
|
||||
}proto_tdlas_t;
|
||||
|
||||
extern proto_tdlas_t tdlas;
|
||||
|
||||
#endif
|
||||
@@ -1,357 +0,0 @@
|
||||
/*<2A><><EFBFBD><EFBFBD>ͨѶ modbus<75>ӻ<EFBFBD>*/
|
||||
#include "proto_modbus_slave_ex.h"
|
||||
#include "string.h"
|
||||
#include "stdio.h"
|
||||
|
||||
#include "app.h"
|
||||
#include "app_timer.h"
|
||||
|
||||
#include "bsp_Uart.h"
|
||||
#include "bsp_Flash.h"
|
||||
|
||||
#include "proto_print.h"
|
||||
#include "proto_modbus_master_tdlas.h"
|
||||
|
||||
static modbus_analysis_data_t modbus_analysis_data;//ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
||||
static modbus_communication_send_buf_t send_struct;//<2F><><EFBFBD>ͽṹ<CDBD><E1B9B9>
|
||||
|
||||
static void proto_modbus_communication_data_analysis(u8 *pData, u16 len, void *data);
|
||||
static void proto_modbus_communication_data_send(u8 *pData, u16 len);
|
||||
static void proto_modbus_init(void);
|
||||
static void proto_modbus_task(void);
|
||||
static modbus_error_code_e proto_modbus_data_write(u16 Addr, u16 Value);
|
||||
static u16 proto_modbus_data_read(u16 Addr);
|
||||
|
||||
proto_Modbus_t modbus_slave_ex=
|
||||
{
|
||||
.id = 0x01,
|
||||
.data_read = proto_modbus_data_read,
|
||||
.data_write = proto_modbus_data_write,
|
||||
.data_analysis = proto_modbus_communication_data_analysis,
|
||||
.init = proto_modbus_init,
|
||||
.task = proto_modbus_task,
|
||||
};
|
||||
|
||||
static proto_Modbus_t *p_modbus = &modbus_slave_ex;
|
||||
static bsp_uart_t * p_rx_uart;
|
||||
|
||||
static void proto_modbus_communication_data_send(u8 *p_data, u16 len)
|
||||
{
|
||||
if(p_rx_uart != NULL)
|
||||
{
|
||||
p_rx_uart->send(p_rx_uart,p_data,len);
|
||||
}
|
||||
}
|
||||
|
||||
static void proto_modbus_init(void)
|
||||
{
|
||||
p_modbus->id = Usr_Flash.FlashData.modbus_id;
|
||||
com_uart1.rx_data_analysis = proto_modbus_communication_data_analysis;
|
||||
com_uart4.rx_data_analysis = proto_modbus_communication_data_analysis;
|
||||
}
|
||||
static void proto_modbus_task(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static void proto_modbus_communication_data_analysis(u8 *pData, u16 len,void *other_data)
|
||||
{
|
||||
modbus_error_code_e error_code;
|
||||
u16 inx;
|
||||
u16 TempAddr, TempData, crc_16;
|
||||
|
||||
|
||||
if (0 == modbus_lib_analysis(&modbus_analysis_data, pData, len))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> У<><D0A3><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
|
||||
return;
|
||||
if (p_modbus->id != modbus_analysis_data.id && modbus_analysis_data.id != 0xe8)//<2F>ж<EFBFBD>ID<49>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
|
||||
return;
|
||||
|
||||
error_code = ModbusErrorCode_Success;
|
||||
|
||||
|
||||
/* //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>Ƿ<C7B7><F1B3ACB3><EFBFBD>Χ
|
||||
if ((modbus_analysis_data.start_addr >= MODBUS_REG_LEN) || (modbus_analysis_data.reg_number >= MODBUS_REG_LEN) ||
|
||||
(modbus_analysis_data.start_addr + modbus_analysis_data.reg_number >= MODBUS_REG_LEN))
|
||||
{
|
||||
ErrorCode = ModbusErrorCode_IllegalAddr;
|
||||
goto Error;
|
||||
}
|
||||
*/
|
||||
p_rx_uart = (bsp_uart_t*)other_data;
|
||||
switch (modbus_analysis_data.func)
|
||||
{
|
||||
case 0x03:
|
||||
case 0x04:
|
||||
{
|
||||
TempAddr = modbus_analysis_data.start_addr;
|
||||
send_struct.send_buffer[0] = modbus_analysis_data.id;
|
||||
send_struct.send_buffer[1] = modbus_analysis_data.func;
|
||||
send_struct.send_buffer[2] = 2 * modbus_analysis_data.reg_number;
|
||||
for (inx = 0; inx < modbus_analysis_data.reg_number; inx++)
|
||||
{
|
||||
TempData = proto_modbus_data_read(TempAddr);
|
||||
send_struct.send_buffer[3 + 2 * inx] = (TempData >> 8) & 0xff;
|
||||
send_struct.send_buffer[4 + 2 * inx] = TempData & 0xff;
|
||||
TempAddr++;
|
||||
}
|
||||
crc_16 = modbus_lib_crc16(send_struct.send_buffer, 3 + send_struct.send_buffer[2]);
|
||||
send_struct.send_buffer[3 + send_struct.send_buffer[2]] = crc_16 & 0xff;
|
||||
send_struct.send_buffer[4 + send_struct.send_buffer[2]] = (crc_16 >> 8) & 0xff;
|
||||
send_struct.len = 5 + send_struct.send_buffer[2];
|
||||
}goto Success;
|
||||
/*<2A><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>*/
|
||||
case 0x41:
|
||||
{
|
||||
TempAddr = modbus_analysis_data.start_addr;
|
||||
send_struct.send_buffer[0] = modbus_analysis_data.id;
|
||||
send_struct.send_buffer[1] = modbus_analysis_data.func;
|
||||
send_struct.send_buffer[2] = modbus_analysis_data.start_addr >> 8;
|
||||
send_struct.send_buffer[3] = modbus_analysis_data.start_addr & 0xff;
|
||||
send_struct.send_buffer[4] = (2 * modbus_analysis_data.reg_number) >> 8;
|
||||
send_struct.send_buffer[5] = (2 * modbus_analysis_data.reg_number) & 0xff;
|
||||
for (inx = 0; inx < modbus_analysis_data.reg_number; inx++)
|
||||
{
|
||||
TempData = proto_modbus_data_read(TempAddr);
|
||||
send_struct.send_buffer[6 + 2 * inx] = (TempData >> 8) & 0xff;
|
||||
send_struct.send_buffer[7 + 2 * inx] = TempData & 0xff;
|
||||
TempAddr++;
|
||||
}
|
||||
crc_16 = modbus_lib_crc16(send_struct.send_buffer, 6 + 2 * modbus_analysis_data.reg_number);
|
||||
send_struct.send_buffer[6 + 2 * modbus_analysis_data.reg_number] = crc_16 & 0xff;
|
||||
send_struct.send_buffer[7 + 2 * modbus_analysis_data.reg_number] = (crc_16 >> 8) & 0xff;
|
||||
send_struct.len = 8 + 2 * modbus_analysis_data.reg_number;
|
||||
}goto Success;
|
||||
|
||||
case 0x06:
|
||||
{
|
||||
TempAddr = modbus_analysis_data.start_addr;
|
||||
TempData = (modbus_analysis_data.write_data_addr[0] << 8) | modbus_analysis_data.write_data_addr[1];
|
||||
error_code = proto_modbus_data_write(TempAddr, TempData);
|
||||
if (error_code)
|
||||
{
|
||||
goto Error;
|
||||
}
|
||||
|
||||
send_struct.len = 8;
|
||||
send_struct.send_buffer[0] = modbus_analysis_data.id;
|
||||
send_struct.send_buffer[1] = modbus_analysis_data.func;
|
||||
send_struct.send_buffer[2] = modbus_analysis_data.start_addr >> 8;
|
||||
send_struct.send_buffer[3] = modbus_analysis_data.start_addr & 0xff;
|
||||
send_struct.send_buffer[4] = modbus_analysis_data.write_data_addr[0];
|
||||
send_struct.send_buffer[5] = modbus_analysis_data.write_data_addr[1];
|
||||
crc_16 = modbus_lib_crc16(send_struct.send_buffer, 6);
|
||||
send_struct.send_buffer[6] = crc_16 & 0xff;
|
||||
send_struct.send_buffer[7] = (crc_16 >> 8) & 0xff;
|
||||
}break;
|
||||
|
||||
case 0x10:
|
||||
{
|
||||
TempAddr = modbus_analysis_data.start_addr;
|
||||
for (inx = 0; inx < modbus_analysis_data.reg_number; inx++)
|
||||
{
|
||||
TempData = modbus_analysis_data.write_data_addr[2 * inx];
|
||||
TempData = (TempData << 8) | modbus_analysis_data.write_data_addr[2 * inx + 1];
|
||||
error_code = proto_modbus_data_write(TempAddr, TempData);
|
||||
TempAddr++;
|
||||
if (error_code)
|
||||
{
|
||||
goto Error;
|
||||
}
|
||||
}
|
||||
send_struct.len = 8;
|
||||
send_struct.send_buffer[0] = modbus_analysis_data.id;
|
||||
send_struct.send_buffer[1] = modbus_analysis_data.func;
|
||||
send_struct.send_buffer[2] = modbus_analysis_data.start_addr >> 8;
|
||||
send_struct.send_buffer[3] = modbus_analysis_data.start_addr & 0xff;
|
||||
send_struct.send_buffer[4] = modbus_analysis_data.reg_number >> 8;
|
||||
send_struct.send_buffer[5] = modbus_analysis_data.reg_number & 0xff;
|
||||
crc_16 = modbus_lib_crc16(send_struct.send_buffer, 6);
|
||||
send_struct.send_buffer[6] = crc_16 & 0xff;
|
||||
send_struct.send_buffer[7] = (crc_16 >> 8) & 0xff;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
error_code = ModbusErrorCode_IllegalFunction;
|
||||
}
|
||||
goto Error;
|
||||
}
|
||||
|
||||
Success:
|
||||
proto_modbus_communication_data_send(send_struct.send_buffer, send_struct.len);
|
||||
return;
|
||||
|
||||
Error:
|
||||
send_struct.len = 5;
|
||||
send_struct.send_buffer[0] = modbus_analysis_data.id;
|
||||
send_struct.send_buffer[1] = modbus_analysis_data.func | 0x80;
|
||||
send_struct.send_buffer[2] = error_code;
|
||||
crc_16 = modbus_lib_crc16(send_struct.send_buffer, 3);
|
||||
send_struct.send_buffer[3] = crc_16 & 0xff;
|
||||
send_struct.send_buffer[4] = (crc_16 >> 8) & 0xff;
|
||||
proto_modbus_communication_data_send(send_struct.send_buffer, send_struct.len);
|
||||
}
|
||||
|
||||
/******************************************
|
||||
* <20><><EFBFBD><EFBFBD>: proto_modbus_data_write
|
||||
* <20><><EFBFBD><EFBFBD>: Modbusд<73>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>: Addr: <20><>ַ
|
||||
Value:<3A><><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>: <20><>
|
||||
* <20><><EFBFBD><EFBFBD>: <20><>
|
||||
******************************************/
|
||||
static modbus_error_code_e proto_modbus_data_write(u16 addr, u16 data)
|
||||
{
|
||||
modbus_error_code_e error_code;
|
||||
u8 temp_point,cali_point;
|
||||
|
||||
error_code = ModbusErrorCode_Success;
|
||||
|
||||
switch(addr)
|
||||
{
|
||||
/*<2A>¶<EFBFBD> ѹ<><D1B9> ʪ<><CAAA>*/
|
||||
case 11000:
|
||||
{
|
||||
tdlas.control.fac_calib_para_set(*((u16 *)(&data)),0xffff,0xffff);
|
||||
}break;
|
||||
case 11001:
|
||||
{
|
||||
tdlas.control.fac_calib_para_set(0xffff,data,0xffff);
|
||||
}break;
|
||||
case 11002:
|
||||
{
|
||||
tdlas.control.fac_calib_para_set(0xffff,0xffff,data);
|
||||
}break;
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>У*/
|
||||
case 11003:
|
||||
{
|
||||
tdlas.control.zero_calib(0);
|
||||
}break;
|
||||
/*<2A><><EFBFBD>̵<EFBFBD>У*/
|
||||
case 11004:
|
||||
{
|
||||
tdlas.control.span_calib(data);
|
||||
}break;
|
||||
|
||||
/*<2A><><EFBFBD>ұ궨*/
|
||||
case 11010 ... 11109:
|
||||
{
|
||||
temp_point = (addr - 11010) / 10;
|
||||
cali_point = (addr - 11010) % 10;
|
||||
tdlas.control.fac_calib(data,cali_point,temp_point);
|
||||
}break;
|
||||
|
||||
/*ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>궨<EFBFBD><EAB6A8>Ϣ*/
|
||||
case 11200:
|
||||
{
|
||||
tdlas.control.fac_calib_data_get(data);
|
||||
}break;
|
||||
|
||||
|
||||
/*sn*/
|
||||
case 20000 ... 20004:
|
||||
{
|
||||
Usr_Flash.FlashData.sn[addr - 20000] = data;
|
||||
Usr_Flash.Write();
|
||||
}break;
|
||||
/*modbus_id*/
|
||||
case 20005:
|
||||
{
|
||||
Usr_Flash.FlashData.modbus_id = data;
|
||||
modbus_slave_ex.id = Usr_Flash.FlashData.modbus_id;
|
||||
Usr_Flash.Write();
|
||||
}break;
|
||||
/*modbus_read_reg_num*/
|
||||
case 20006:
|
||||
{
|
||||
if(data > 1000)
|
||||
{
|
||||
error_code = ModbusErrorCode_IllegalData;
|
||||
}
|
||||
else
|
||||
{
|
||||
Usr_Flash.FlashData.modbus_read_reg_num = data;
|
||||
Usr_Flash.Write();
|
||||
}
|
||||
}break;
|
||||
case 20007:
|
||||
{
|
||||
if(data > 16)
|
||||
{
|
||||
error_code = ModbusErrorCode_IllegalData;
|
||||
}
|
||||
else
|
||||
{
|
||||
Usr_Flash.FlashData.modbus_read_sensor_num = data;
|
||||
Usr_Flash.Write();
|
||||
}
|
||||
}break;
|
||||
/*FC<46><43>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
case 252:
|
||||
{
|
||||
print.set(data);
|
||||
}break;
|
||||
}
|
||||
return error_code;
|
||||
}
|
||||
|
||||
/******************************************
|
||||
* <20><><EFBFBD><EFBFBD>: proto_modbus_data_read
|
||||
* <20><><EFBFBD><EFBFBD>: Modbus<75><73><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>: Addr: <20><>ַ
|
||||
* <20><><EFBFBD><EFBFBD>: <20><>ַ<EFBFBD><D6B7>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>: <20><>
|
||||
******************************************/
|
||||
static u16 proto_modbus_data_read(u16 addr)
|
||||
{
|
||||
u16 data = 0;
|
||||
u16 *p_data;
|
||||
u16 num,offset;
|
||||
|
||||
switch(addr)
|
||||
{
|
||||
/*ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>*/
|
||||
case 0 ... 639:
|
||||
{
|
||||
u16 size;
|
||||
size = sizeof(gas_data_t);
|
||||
/* TDLASĬ<53>϶<EFBFBD>ȡ*/
|
||||
if( size== (2 * Usr_Flash.FlashData.modbus_read_reg_num))
|
||||
{
|
||||
p_data = (u16 *)&gas_data;
|
||||
data = p_data[addr];
|
||||
}
|
||||
else if((2 * Usr_Flash.FlashData.modbus_read_reg_num )< sizeof(gas_data_t))/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
num = addr / Usr_Flash.FlashData.modbus_read_reg_num;
|
||||
offset = addr % Usr_Flash.FlashData.modbus_read_reg_num;
|
||||
p_data = (u16 *)&gas_data[num];
|
||||
data = p_data[offset];
|
||||
}
|
||||
|
||||
}break;
|
||||
|
||||
/*sn*/
|
||||
case 20000 ... 20004:
|
||||
{
|
||||
data = Usr_Flash.FlashData.sn[addr - 20000];
|
||||
}break;
|
||||
/*modbus_id*/
|
||||
case 20005:
|
||||
{
|
||||
data = Usr_Flash.FlashData.modbus_id;
|
||||
}break;
|
||||
/*modbus_read_reg_num*/
|
||||
case 20006:
|
||||
{
|
||||
data = Usr_Flash.FlashData.modbus_read_reg_num;
|
||||
}break;
|
||||
case 20007:
|
||||
{
|
||||
data = Usr_Flash.FlashData.modbus_read_sensor_num;
|
||||
}break;
|
||||
default:data = 0;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
33
leakage_system/.mxproject
Normal file
33
leakage_system/.mxproject
Normal file
File diff suppressed because one or more lines are too long
@@ -32,6 +32,7 @@ extern "C" {
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include "sys.h"
|
||||
#include "usr_config.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
@@ -57,66 +58,42 @@ void Error_Handler(void);
|
||||
/* USER CODE END EFP */
|
||||
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define TX_S3_Pin GPIO_PIN_2
|
||||
#define TX_S3_GPIO_Port GPIOE
|
||||
#define TX_S2_Pin GPIO_PIN_3
|
||||
#define TX_S2_GPIO_Port GPIOE
|
||||
#define TX_EN_Pin GPIO_PIN_4
|
||||
#define TX_EN_GPIO_Port GPIOE
|
||||
#define TX_S1_Pin GPIO_PIN_5
|
||||
#define TX_S1_GPIO_Port GPIOE
|
||||
#define TX_S0_Pin GPIO_PIN_6
|
||||
#define TX_S0_GPIO_Port GPIOE
|
||||
#define RS485_EN_Pin GPIO_PIN_2
|
||||
#define RS485_EN_GPIO_Port GPIOA
|
||||
#define LED1_Pin GPIO_PIN_8
|
||||
#define LED1_GPIO_Port GPIOE
|
||||
#define LED2_Pin GPIO_PIN_9
|
||||
#define LED2_GPIO_Port GPIOE
|
||||
#define LED3_Pin GPIO_PIN_10
|
||||
#define LED3_GPIO_Port GPIOE
|
||||
#define LED_CH16_Pin GPIO_PIN_12
|
||||
#define LED_CH16_GPIO_Port GPIOB
|
||||
#define LED_CH15_Pin GPIO_PIN_13
|
||||
#define LED_CH15_GPIO_Port GPIOB
|
||||
#define LED_CH14_Pin GPIO_PIN_14
|
||||
#define LED_CH14_GPIO_Port GPIOB
|
||||
#define LED_CH13_Pin GPIO_PIN_15
|
||||
#define LED_CH13_GPIO_Port GPIOB
|
||||
#define LED_CH12_Pin GPIO_PIN_8
|
||||
#define LED_CH12_GPIO_Port GPIOD
|
||||
#define LED_CH11_Pin GPIO_PIN_9
|
||||
#define LED_CH11_GPIO_Port GPIOD
|
||||
#define LED_CH10_Pin GPIO_PIN_10
|
||||
#define LED_CH10_GPIO_Port GPIOD
|
||||
#define LED_CH9_Pin GPIO_PIN_11
|
||||
#define LED_CH9_GPIO_Port GPIOD
|
||||
#define LED_CH8_Pin GPIO_PIN_12
|
||||
#define LED_CH8_GPIO_Port GPIOD
|
||||
#define LED_CH7_Pin GPIO_PIN_13
|
||||
#define LED_CH7_GPIO_Port GPIOD
|
||||
#define LED_CH6_Pin GPIO_PIN_14
|
||||
#define LED_CH6_GPIO_Port GPIOD
|
||||
#define LED_CH5_Pin GPIO_PIN_15
|
||||
#define LED_CH5_GPIO_Port GPIOD
|
||||
#define LED_CH4_Pin GPIO_PIN_6
|
||||
#define LED_CH4_GPIO_Port GPIOC
|
||||
#define LED_CH3_Pin GPIO_PIN_7
|
||||
#define LED_CH3_GPIO_Port GPIOC
|
||||
#define LED_CH2_Pin GPIO_PIN_8
|
||||
#define LED_CH2_GPIO_Port GPIOC
|
||||
#define LED_CH1_Pin GPIO_PIN_9
|
||||
#define LED_CH1_GPIO_Port GPIOC
|
||||
#define RX_EN_Pin GPIO_PIN_4
|
||||
#define RX_EN_GPIO_Port GPIOD
|
||||
#define RX_S3_Pin GPIO_PIN_8
|
||||
#define RX_S3_GPIO_Port GPIOB
|
||||
#define RX_S2_Pin GPIO_PIN_9
|
||||
#define RX_S2_GPIO_Port GPIOB
|
||||
#define RX_S1_Pin GPIO_PIN_0
|
||||
#define RX_S1_GPIO_Port GPIOE
|
||||
#define RX_S0_Pin GPIO_PIN_1
|
||||
#define RX_S0_GPIO_Port GPIOE
|
||||
#define W5500_RST_Pin GPIO_PIN_4
|
||||
#define W5500_RST_GPIO_Port GPIOC
|
||||
#define W5500_INT_Pin GPIO_PIN_5
|
||||
#define W5500_INT_GPIO_Port GPIOC
|
||||
#define RS485_1_EN_Pin GPIO_PIN_0
|
||||
#define RS485_1_EN_GPIO_Port GPIOB
|
||||
#define RS485_2_EN_Pin GPIO_PIN_1
|
||||
#define RS485_2_EN_GPIO_Port GPIOB
|
||||
#define RS485_3_EN_Pin GPIO_PIN_2
|
||||
#define RS485_3_EN_GPIO_Port GPIOB
|
||||
#define RS485_4_EN_Pin GPIO_PIN_7
|
||||
#define RS485_4_EN_GPIO_Port GPIOE
|
||||
#define RELAY_1_Pin GPIO_PIN_8
|
||||
#define RELAY_1_GPIO_Port GPIOE
|
||||
#define RELAY_2_Pin GPIO_PIN_9
|
||||
#define RELAY_2_GPIO_Port GPIOE
|
||||
#define RELAY_3_Pin GPIO_PIN_10
|
||||
#define RELAY_3_GPIO_Port GPIOE
|
||||
#define W5500_SPI1_CS_Pin GPIO_PIN_11
|
||||
#define W5500_SPI1_CS_GPIO_Port GPIOE
|
||||
#define SPI2_CS_Pin GPIO_PIN_12
|
||||
#define SPI2_CS_GPIO_Port GPIOB
|
||||
#define LED_Pin GPIO_PIN_12
|
||||
#define LED_GPIO_Port GPIOA
|
||||
#define DS1302_CLK_Pin GPIO_PIN_3
|
||||
#define DS1302_CLK_GPIO_Port GPIOD
|
||||
#define DS1302_DIO_Pin GPIO_PIN_4
|
||||
#define DS1302_DIO_GPIO_Port GPIOD
|
||||
#define DS1302_RST_Pin GPIO_PIN_5
|
||||
#define DS1302_RST_GPIO_Port GPIOD
|
||||
#define BUZZER_Pin GPIO_PIN_4
|
||||
#define BUZZER_GPIO_Port GPIOB
|
||||
#define RELAY_4_Pin GPIO_PIN_5
|
||||
#define RELAY_4_GPIO_Port GPIOB
|
||||
#define RS485_EN_Pin GPIO_PIN_8
|
||||
#define RS485_EN_GPIO_Port GPIOB
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
55
leakage_system/Core/Inc/spi.h
Normal file
55
leakage_system/Core/Inc/spi.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file spi.h
|
||||
* @brief This file contains all the function prototypes for
|
||||
* the spi.c file
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __SPI_H__
|
||||
#define __SPI_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
extern SPI_HandleTypeDef hspi1;
|
||||
|
||||
extern SPI_HandleTypeDef hspi2;
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
void MX_SPI1_Init(void);
|
||||
void MX_SPI2_Init(void);
|
||||
|
||||
/* USER CODE BEGIN Prototypes */
|
||||
|
||||
/* USER CODE END Prototypes */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __SPI_H__ */
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
/* #define HAL_SAI_MODULE_ENABLED */
|
||||
/* #define HAL_SD_MODULE_ENABLED */
|
||||
/* #define HAL_MMC_MODULE_ENABLED */
|
||||
/* #define HAL_SPI_MODULE_ENABLED */
|
||||
#define HAL_SPI_MODULE_ENABLED
|
||||
/* #define HAL_TIM_MODULE_ENABLED */
|
||||
#define HAL_UART_MODULE_ENABLED
|
||||
/* #define HAL_USART_MODULE_ENABLED */
|
||||
@@ -55,15 +55,21 @@ void SVC_Handler(void);
|
||||
void DebugMon_Handler(void);
|
||||
void PendSV_Handler(void);
|
||||
void SysTick_Handler(void);
|
||||
void DMA1_Stream1_IRQHandler(void);
|
||||
void DMA1_Stream2_IRQHandler(void);
|
||||
void DMA1_Stream3_IRQHandler(void);
|
||||
void DMA1_Stream4_IRQHandler(void);
|
||||
void DMA1_Stream5_IRQHandler(void);
|
||||
void DMA1_Stream6_IRQHandler(void);
|
||||
void USART1_IRQHandler(void);
|
||||
void USART2_IRQHandler(void);
|
||||
void USART3_IRQHandler(void);
|
||||
void UART4_IRQHandler(void);
|
||||
void DMA2_Stream1_IRQHandler(void);
|
||||
void DMA2_Stream2_IRQHandler(void);
|
||||
void DMA2_Stream6_IRQHandler(void);
|
||||
void DMA2_Stream7_IRQHandler(void);
|
||||
void USART6_IRQHandler(void);
|
||||
/* USER CODE BEGIN EFP */
|
||||
|
||||
/* USER CODE END EFP */
|
||||
@@ -38,6 +38,10 @@ extern UART_HandleTypeDef huart1;
|
||||
|
||||
extern UART_HandleTypeDef huart2;
|
||||
|
||||
extern UART_HandleTypeDef huart3;
|
||||
|
||||
extern UART_HandleTypeDef huart6;
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
@@ -45,6 +49,8 @@ extern UART_HandleTypeDef huart2;
|
||||
void MX_UART4_Init(void);
|
||||
void MX_USART1_UART_Init(void);
|
||||
void MX_USART2_UART_Init(void);
|
||||
void MX_USART3_UART_Init(void);
|
||||
void MX_USART6_UART_Init(void);
|
||||
|
||||
/* USER CODE BEGIN Prototypes */
|
||||
|
||||
@@ -44,9 +44,15 @@ void MX_DMA_Init(void)
|
||||
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||
|
||||
/* DMA interrupt init */
|
||||
/* DMA1_Stream1_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);
|
||||
/* DMA1_Stream2_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);
|
||||
/* DMA1_Stream3_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn);
|
||||
/* DMA1_Stream4_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Stream4_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Stream4_IRQn);
|
||||
@@ -56,9 +62,15 @@ void MX_DMA_Init(void)
|
||||
/* DMA1_Stream6_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn);
|
||||
/* DMA2_Stream1_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
|
||||
/* DMA2_Stream2_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
|
||||
/* DMA2_Stream6_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn);
|
||||
/* DMA2_Stream7_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
|
||||
@@ -45,94 +45,81 @@ void MX_GPIO_Init(void)
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
|
||||
/* GPIO Ports Clock Enable */
|
||||
__HAL_RCC_GPIOE_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOH_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOE_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOE, TX_S3_Pin|TX_S2_Pin|TX_EN_Pin|TX_S1_Pin
|
||||
|TX_S0_Pin|RX_S1_Pin|RX_S0_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(GPIOC, W5500_RST_Pin|W5500_INT_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(RS485_EN_GPIO_Port, RS485_EN_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(GPIOB, RS485_1_EN_Pin|RS485_2_EN_Pin|RS485_3_EN_Pin|SPI2_CS_Pin
|
||||
|BUZZER_Pin|RELAY_4_Pin|RS485_EN_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOE, LED1_Pin|LED2_Pin|LED3_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(GPIOE, RS485_4_EN_Pin|RELAY_1_Pin|RELAY_2_Pin|RELAY_3_Pin
|
||||
|W5500_SPI1_CS_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOB, LED_CH16_Pin|LED_CH15_Pin|LED_CH14_Pin|LED_CH13_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOD, LED_CH12_Pin|LED_CH11_Pin|LED_CH10_Pin|LED_CH9_Pin
|
||||
|LED_CH8_Pin|LED_CH7_Pin|LED_CH6_Pin|LED_CH5_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(GPIOD, DS1302_CLK_Pin|DS1302_DIO_Pin|DS1302_RST_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOC, LED_CH4_Pin|LED_CH3_Pin|LED_CH2_Pin|LED_CH1_Pin, GPIO_PIN_SET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(RX_EN_GPIO_Port, RX_EN_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOB, RX_S3_Pin|RX_S2_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pins : PEPin PEPin PEPin PEPin
|
||||
PEPin PEPin */
|
||||
GPIO_InitStruct.Pin = TX_S3_Pin|TX_S2_Pin|TX_S1_Pin|TX_S0_Pin
|
||||
|RX_S1_Pin|RX_S0_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PEPin PEPin PEPin PEPin */
|
||||
GPIO_InitStruct.Pin = TX_EN_Pin|LED1_Pin|LED2_Pin|LED3_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = RS485_EN_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(RS485_EN_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PBPin PBPin PBPin PBPin */
|
||||
GPIO_InitStruct.Pin = LED_CH16_Pin|LED_CH15_Pin|LED_CH14_Pin|LED_CH13_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PDPin PDPin PDPin PDPin
|
||||
PDPin PDPin PDPin PDPin
|
||||
PDPin */
|
||||
GPIO_InitStruct.Pin = LED_CH12_Pin|LED_CH11_Pin|LED_CH10_Pin|LED_CH9_Pin
|
||||
|LED_CH8_Pin|LED_CH7_Pin|LED_CH6_Pin|LED_CH5_Pin
|
||||
|RX_EN_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PCPin PCPin PCPin PCPin */
|
||||
GPIO_InitStruct.Pin = LED_CH4_Pin|LED_CH3_Pin|LED_CH2_Pin|LED_CH1_Pin;
|
||||
/*Configure GPIO pins : PCPin PCPin */
|
||||
GPIO_InitStruct.Pin = W5500_RST_Pin|W5500_INT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PBPin PBPin */
|
||||
GPIO_InitStruct.Pin = RX_S3_Pin|RX_S2_Pin;
|
||||
/*Configure GPIO pins : PBPin PBPin PBPin PBPin
|
||||
PBPin PBPin */
|
||||
GPIO_InitStruct.Pin = RS485_1_EN_Pin|RS485_2_EN_Pin|RS485_3_EN_Pin|SPI2_CS_Pin
|
||||
|BUZZER_Pin|RS485_EN_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PEPin PEPin PEPin */
|
||||
GPIO_InitStruct.Pin = RS485_4_EN_Pin|RELAY_1_Pin|W5500_SPI1_CS_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PEPin PEPin */
|
||||
GPIO_InitStruct.Pin = RELAY_2_Pin|RELAY_3_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = LED_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PDPin PDPin PDPin */
|
||||
GPIO_InitStruct.Pin = DS1302_CLK_Pin|DS1302_DIO_Pin|DS1302_RST_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = RELAY_4_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(RELAY_4_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 2 */
|
||||
@@ -19,6 +19,7 @@
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
#include "dma.h"
|
||||
#include "spi.h"
|
||||
#include "usart.h"
|
||||
#include "gpio.h"
|
||||
|
||||
@@ -91,8 +92,13 @@ int main(void)
|
||||
MX_UART4_Init();
|
||||
MX_USART1_UART_Init();
|
||||
MX_USART2_UART_Init();
|
||||
MX_SPI1_Init();
|
||||
MX_SPI2_Init();
|
||||
MX_USART3_UART_Init();
|
||||
MX_USART6_UART_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
app_init();
|
||||
//HAL_GPIO_WritePin(JK1_GPIO_Port,JK1_Pin,GPIO_PIN_SET);
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Infinite loop */
|
||||
196
leakage_system/Core/Src/spi.c
Normal file
196
leakage_system/Core/Src/spi.c
Normal file
@@ -0,0 +1,196 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file spi.c
|
||||
* @brief This file provides code for the configuration
|
||||
* of the SPI instances.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "spi.h"
|
||||
|
||||
/* USER CODE BEGIN 0 */
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
SPI_HandleTypeDef hspi1;
|
||||
SPI_HandleTypeDef hspi2;
|
||||
|
||||
/* SPI1 init function */
|
||||
void MX_SPI1_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN SPI1_Init 0 */
|
||||
|
||||
/* USER CODE END SPI1_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN SPI1_Init 1 */
|
||||
|
||||
/* USER CODE END SPI1_Init 1 */
|
||||
hspi1.Instance = SPI1;
|
||||
hspi1.Init.Mode = SPI_MODE_MASTER;
|
||||
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
|
||||
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
|
||||
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
|
||||
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
|
||||
hspi1.Init.NSS = SPI_NSS_SOFT;
|
||||
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
|
||||
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
||||
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
|
||||
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||
hspi1.Init.CRCPolynomial = 10;
|
||||
if (HAL_SPI_Init(&hspi1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN SPI1_Init 2 */
|
||||
|
||||
/* USER CODE END SPI1_Init 2 */
|
||||
|
||||
}
|
||||
/* SPI2 init function */
|
||||
void MX_SPI2_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN SPI2_Init 0 */
|
||||
|
||||
/* USER CODE END SPI2_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN SPI2_Init 1 */
|
||||
|
||||
/* USER CODE END SPI2_Init 1 */
|
||||
hspi2.Instance = SPI2;
|
||||
hspi2.Init.Mode = SPI_MODE_MASTER;
|
||||
hspi2.Init.Direction = SPI_DIRECTION_2LINES;
|
||||
hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
|
||||
hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
|
||||
hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
|
||||
hspi2.Init.NSS = SPI_NSS_SOFT;
|
||||
hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
|
||||
hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
||||
hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
|
||||
hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||
hspi2.Init.CRCPolynomial = 10;
|
||||
if (HAL_SPI_Init(&hspi2) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN SPI2_Init 2 */
|
||||
|
||||
/* USER CODE END SPI2_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
||||
{
|
||||
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
if(spiHandle->Instance==SPI1)
|
||||
{
|
||||
/* USER CODE BEGIN SPI1_MspInit 0 */
|
||||
|
||||
/* USER CODE END SPI1_MspInit 0 */
|
||||
/* SPI1 clock enable */
|
||||
__HAL_RCC_SPI1_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**SPI1 GPIO Configuration
|
||||
PA5 ------> SPI1_SCK
|
||||
PA6 ------> SPI1_MISO
|
||||
PA7 ------> SPI1_MOSI
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN SPI1_MspInit 1 */
|
||||
|
||||
/* USER CODE END SPI1_MspInit 1 */
|
||||
}
|
||||
else if(spiHandle->Instance==SPI2)
|
||||
{
|
||||
/* USER CODE BEGIN SPI2_MspInit 0 */
|
||||
|
||||
/* USER CODE END SPI2_MspInit 0 */
|
||||
/* SPI2 clock enable */
|
||||
__HAL_RCC_SPI2_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**SPI2 GPIO Configuration
|
||||
PB13 ------> SPI2_SCK
|
||||
PB14 ------> SPI2_MISO
|
||||
PB15 ------> SPI2_MOSI
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN SPI2_MspInit 1 */
|
||||
|
||||
/* USER CODE END SPI2_MspInit 1 */
|
||||
}
|
||||
}
|
||||
|
||||
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
|
||||
{
|
||||
|
||||
if(spiHandle->Instance==SPI1)
|
||||
{
|
||||
/* USER CODE BEGIN SPI1_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END SPI1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_SPI1_CLK_DISABLE();
|
||||
|
||||
/**SPI1 GPIO Configuration
|
||||
PA5 ------> SPI1_SCK
|
||||
PA6 ------> SPI1_MISO
|
||||
PA7 ------> SPI1_MOSI
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
|
||||
|
||||
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END SPI1_MspDeInit 1 */
|
||||
}
|
||||
else if(spiHandle->Instance==SPI2)
|
||||
{
|
||||
/* USER CODE BEGIN SPI2_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END SPI2_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_SPI2_CLK_DISABLE();
|
||||
|
||||
/**SPI2 GPIO Configuration
|
||||
PB13 ------> SPI2_SCK
|
||||
PB14 ------> SPI2_MISO
|
||||
PB15 ------> SPI2_MOSI
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
|
||||
|
||||
/* USER CODE BEGIN SPI2_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END SPI2_MspDeInit 1 */
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
@@ -64,9 +64,15 @@ extern DMA_HandleTypeDef hdma_usart1_rx;
|
||||
extern DMA_HandleTypeDef hdma_usart1_tx;
|
||||
extern DMA_HandleTypeDef hdma_usart2_rx;
|
||||
extern DMA_HandleTypeDef hdma_usart2_tx;
|
||||
extern DMA_HandleTypeDef hdma_usart3_rx;
|
||||
extern DMA_HandleTypeDef hdma_usart3_tx;
|
||||
extern DMA_HandleTypeDef hdma_usart6_rx;
|
||||
extern DMA_HandleTypeDef hdma_usart6_tx;
|
||||
extern UART_HandleTypeDef huart4;
|
||||
extern UART_HandleTypeDef huart1;
|
||||
extern UART_HandleTypeDef huart2;
|
||||
extern UART_HandleTypeDef huart3;
|
||||
extern UART_HandleTypeDef huart6;
|
||||
/* USER CODE BEGIN EV */
|
||||
|
||||
/* USER CODE END EV */
|
||||
@@ -197,7 +203,9 @@ void SysTick_Handler(void)
|
||||
app_timer.increment_int(1);
|
||||
com_uart1.rx_time_increment_int(&com_uart1,1);
|
||||
com_uart2.rx_time_increment_int(&com_uart2,1);
|
||||
com_uart3.rx_time_increment_int(&com_uart3,1);
|
||||
com_uart4.rx_time_increment_int(&com_uart4,1);
|
||||
com_uart6.rx_time_increment_int(&com_uart6,1);
|
||||
/* USER CODE END SysTick_IRQn 0 */
|
||||
HAL_IncTick();
|
||||
/* USER CODE BEGIN SysTick_IRQn 1 */
|
||||
@@ -212,6 +220,20 @@ void SysTick_Handler(void)
|
||||
/* please refer to the startup file (startup_stm32f4xx.s). */
|
||||
/******************************************************************************/
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA1 stream1 global interrupt.
|
||||
*/
|
||||
void DMA1_Stream1_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DMA1_Stream1_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA1_Stream1_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_usart3_rx);
|
||||
/* USER CODE BEGIN DMA1_Stream1_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA1_Stream1_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA1 stream2 global interrupt.
|
||||
*/
|
||||
@@ -226,6 +248,20 @@ void DMA1_Stream2_IRQHandler(void)
|
||||
/* USER CODE END DMA1_Stream2_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA1 stream3 global interrupt.
|
||||
*/
|
||||
void DMA1_Stream3_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA1_Stream3_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_usart3_tx);
|
||||
/* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA1_Stream3_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA1 stream4 global interrupt.
|
||||
*/
|
||||
@@ -279,7 +315,7 @@ void USART1_IRQHandler(void)
|
||||
// __HAL_UART_CLEAR_IDLEFLAG(&huart1);
|
||||
// com_uart1.Rx_IdleInt(&com_uart1);
|
||||
// }
|
||||
// /* USER CODE END USART1_IRQn 0 */
|
||||
/* USER CODE END USART1_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart1);
|
||||
/* USER CODE BEGIN USART1_IRQn 1 */
|
||||
|
||||
@@ -304,6 +340,20 @@ void USART2_IRQHandler(void)
|
||||
/* USER CODE END USART2_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles USART3 global interrupt.
|
||||
*/
|
||||
void USART3_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN USART3_IRQn 0 */
|
||||
|
||||
/* USER CODE END USART3_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart3);
|
||||
/* USER CODE BEGIN USART3_IRQn 1 */
|
||||
|
||||
/* USER CODE END USART3_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles UART4 global interrupt.
|
||||
*/
|
||||
@@ -322,6 +372,20 @@ void UART4_IRQHandler(void)
|
||||
/* USER CODE END UART4_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA2 stream1 global interrupt.
|
||||
*/
|
||||
void DMA2_Stream1_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DMA2_Stream1_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA2_Stream1_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_usart6_rx);
|
||||
/* USER CODE BEGIN DMA2_Stream1_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA2_Stream1_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA2 stream2 global interrupt.
|
||||
*/
|
||||
@@ -336,6 +400,20 @@ void DMA2_Stream2_IRQHandler(void)
|
||||
/* USER CODE END DMA2_Stream2_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA2 stream6 global interrupt.
|
||||
*/
|
||||
void DMA2_Stream6_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DMA2_Stream6_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA2_Stream6_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_usart6_tx);
|
||||
/* USER CODE BEGIN DMA2_Stream6_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA2_Stream6_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA2 stream7 global interrupt.
|
||||
*/
|
||||
@@ -350,6 +428,20 @@ void DMA2_Stream7_IRQHandler(void)
|
||||
/* USER CODE END DMA2_Stream7_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles USART6 global interrupt.
|
||||
*/
|
||||
void USART6_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN USART6_IRQn 0 */
|
||||
|
||||
/* USER CODE END USART6_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart6);
|
||||
/* USER CODE BEGIN USART6_IRQn 1 */
|
||||
|
||||
/* USER CODE END USART6_IRQn 1 */
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
@@ -27,12 +27,18 @@
|
||||
UART_HandleTypeDef huart4;
|
||||
UART_HandleTypeDef huart1;
|
||||
UART_HandleTypeDef huart2;
|
||||
UART_HandleTypeDef huart3;
|
||||
UART_HandleTypeDef huart6;
|
||||
DMA_HandleTypeDef hdma_uart4_rx;
|
||||
DMA_HandleTypeDef hdma_uart4_tx;
|
||||
DMA_HandleTypeDef hdma_usart1_rx;
|
||||
DMA_HandleTypeDef hdma_usart1_tx;
|
||||
DMA_HandleTypeDef hdma_usart2_rx;
|
||||
DMA_HandleTypeDef hdma_usart2_tx;
|
||||
DMA_HandleTypeDef hdma_usart3_rx;
|
||||
DMA_HandleTypeDef hdma_usart3_tx;
|
||||
DMA_HandleTypeDef hdma_usart6_rx;
|
||||
DMA_HandleTypeDef hdma_usart6_tx;
|
||||
|
||||
/* UART4 init function */
|
||||
void MX_UART4_Init(void)
|
||||
@@ -104,7 +110,7 @@ void MX_USART2_UART_Init(void)
|
||||
|
||||
/* USER CODE END USART2_Init 1 */
|
||||
huart2.Instance = USART2;
|
||||
huart2.Init.BaudRate = 9600;
|
||||
huart2.Init.BaudRate = 115200;
|
||||
huart2.Init.WordLength = UART_WORDLENGTH_8B;
|
||||
huart2.Init.StopBits = UART_STOPBITS_1;
|
||||
huart2.Init.Parity = UART_PARITY_NONE;
|
||||
@@ -119,6 +125,64 @@ void MX_USART2_UART_Init(void)
|
||||
|
||||
/* USER CODE END USART2_Init 2 */
|
||||
|
||||
}
|
||||
/* USART3 init function */
|
||||
|
||||
void MX_USART3_UART_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN USART3_Init 0 */
|
||||
|
||||
/* USER CODE END USART3_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN USART3_Init 1 */
|
||||
|
||||
/* USER CODE END USART3_Init 1 */
|
||||
huart3.Instance = USART3;
|
||||
huart3.Init.BaudRate = 115200;
|
||||
huart3.Init.WordLength = UART_WORDLENGTH_8B;
|
||||
huart3.Init.StopBits = UART_STOPBITS_1;
|
||||
huart3.Init.Parity = UART_PARITY_NONE;
|
||||
huart3.Init.Mode = UART_MODE_TX_RX;
|
||||
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||
if (HAL_UART_Init(&huart3) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN USART3_Init 2 */
|
||||
|
||||
/* USER CODE END USART3_Init 2 */
|
||||
|
||||
}
|
||||
/* USART6 init function */
|
||||
|
||||
void MX_USART6_UART_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN USART6_Init 0 */
|
||||
|
||||
/* USER CODE END USART6_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN USART6_Init 1 */
|
||||
|
||||
/* USER CODE END USART6_Init 1 */
|
||||
huart6.Instance = USART6;
|
||||
huart6.Init.BaudRate = 115200;
|
||||
huart6.Init.WordLength = UART_WORDLENGTH_8B;
|
||||
huart6.Init.StopBits = UART_STOPBITS_1;
|
||||
huart6.Init.Parity = UART_PARITY_NONE;
|
||||
huart6.Init.Mode = UART_MODE_TX_RX;
|
||||
huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||
huart6.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||
if (HAL_UART_Init(&huart6) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN USART6_Init 2 */
|
||||
|
||||
/* USER CODE END USART6_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||
@@ -197,17 +261,17 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||
/* USART1 clock enable */
|
||||
__HAL_RCC_USART1_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**USART1 GPIO Configuration
|
||||
PA9 ------> USART1_TX
|
||||
PA10 ------> USART1_RX
|
||||
PB6 ------> USART1_TX
|
||||
PB7 ------> USART1_RX
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/* USART1 DMA Init */
|
||||
/* USART1_RX Init */
|
||||
@@ -261,17 +325,17 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||
/* USART2 clock enable */
|
||||
__HAL_RCC_USART2_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**USART2 GPIO Configuration
|
||||
PD5 ------> USART2_TX
|
||||
PD6 ------> USART2_RX
|
||||
PA2 ------> USART2_TX
|
||||
PA3 ------> USART2_RX
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
|
||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* USART2 DMA Init */
|
||||
/* USART2_RX Init */
|
||||
@@ -317,6 +381,134 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||
|
||||
/* USER CODE END USART2_MspInit 1 */
|
||||
}
|
||||
else if(uartHandle->Instance==USART3)
|
||||
{
|
||||
/* USER CODE BEGIN USART3_MspInit 0 */
|
||||
|
||||
/* USER CODE END USART3_MspInit 0 */
|
||||
/* USART3 clock enable */
|
||||
__HAL_RCC_USART3_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**USART3 GPIO Configuration
|
||||
PB10 ------> USART3_TX
|
||||
PB11 ------> USART3_RX
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/* USART3 DMA Init */
|
||||
/* USART3_RX Init */
|
||||
hdma_usart3_rx.Instance = DMA1_Stream1;
|
||||
hdma_usart3_rx.Init.Channel = DMA_CHANNEL_4;
|
||||
hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||
hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE;
|
||||
hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||
hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||
hdma_usart3_rx.Init.Mode = DMA_NORMAL;
|
||||
hdma_usart3_rx.Init.Priority = DMA_PRIORITY_LOW;
|
||||
hdma_usart3_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
||||
if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart3_rx);
|
||||
|
||||
/* USART3_TX Init */
|
||||
hdma_usart3_tx.Instance = DMA1_Stream3;
|
||||
hdma_usart3_tx.Init.Channel = DMA_CHANNEL_4;
|
||||
hdma_usart3_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||
hdma_usart3_tx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
hdma_usart3_tx.Init.MemInc = DMA_MINC_ENABLE;
|
||||
hdma_usart3_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||
hdma_usart3_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||
hdma_usart3_tx.Init.Mode = DMA_NORMAL;
|
||||
hdma_usart3_tx.Init.Priority = DMA_PRIORITY_LOW;
|
||||
hdma_usart3_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
||||
if (HAL_DMA_Init(&hdma_usart3_tx) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart3_tx);
|
||||
|
||||
/* USART3 interrupt Init */
|
||||
HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(USART3_IRQn);
|
||||
/* USER CODE BEGIN USART3_MspInit 1 */
|
||||
|
||||
/* USER CODE END USART3_MspInit 1 */
|
||||
}
|
||||
else if(uartHandle->Instance==USART6)
|
||||
{
|
||||
/* USER CODE BEGIN USART6_MspInit 0 */
|
||||
|
||||
/* USER CODE END USART6_MspInit 0 */
|
||||
/* USART6 clock enable */
|
||||
__HAL_RCC_USART6_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||
/**USART6 GPIO Configuration
|
||||
PC6 ------> USART6_TX
|
||||
PC7 ------> USART6_RX
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
|
||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||
|
||||
/* USART6 DMA Init */
|
||||
/* USART6_RX Init */
|
||||
hdma_usart6_rx.Instance = DMA2_Stream1;
|
||||
hdma_usart6_rx.Init.Channel = DMA_CHANNEL_5;
|
||||
hdma_usart6_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||
hdma_usart6_rx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
hdma_usart6_rx.Init.MemInc = DMA_MINC_ENABLE;
|
||||
hdma_usart6_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||
hdma_usart6_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||
hdma_usart6_rx.Init.Mode = DMA_NORMAL;
|
||||
hdma_usart6_rx.Init.Priority = DMA_PRIORITY_LOW;
|
||||
hdma_usart6_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
||||
if (HAL_DMA_Init(&hdma_usart6_rx) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart6_rx);
|
||||
|
||||
/* USART6_TX Init */
|
||||
hdma_usart6_tx.Instance = DMA2_Stream6;
|
||||
hdma_usart6_tx.Init.Channel = DMA_CHANNEL_5;
|
||||
hdma_usart6_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||
hdma_usart6_tx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
hdma_usart6_tx.Init.MemInc = DMA_MINC_ENABLE;
|
||||
hdma_usart6_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||
hdma_usart6_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||
hdma_usart6_tx.Init.Mode = DMA_NORMAL;
|
||||
hdma_usart6_tx.Init.Priority = DMA_PRIORITY_LOW;
|
||||
hdma_usart6_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
||||
if (HAL_DMA_Init(&hdma_usart6_tx) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart6_tx);
|
||||
|
||||
/* USART6 interrupt Init */
|
||||
HAL_NVIC_SetPriority(USART6_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(USART6_IRQn);
|
||||
/* USER CODE BEGIN USART6_MspInit 1 */
|
||||
|
||||
/* USER CODE END USART6_MspInit 1 */
|
||||
}
|
||||
}
|
||||
|
||||
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||
@@ -355,10 +547,10 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||
__HAL_RCC_USART1_CLK_DISABLE();
|
||||
|
||||
/**USART1 GPIO Configuration
|
||||
PA9 ------> USART1_TX
|
||||
PA10 ------> USART1_RX
|
||||
PB6 ------> USART1_TX
|
||||
PB7 ------> USART1_RX
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7);
|
||||
|
||||
/* USART1 DMA DeInit */
|
||||
HAL_DMA_DeInit(uartHandle->hdmarx);
|
||||
@@ -379,10 +571,10 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||
__HAL_RCC_USART2_CLK_DISABLE();
|
||||
|
||||
/**USART2 GPIO Configuration
|
||||
PD5 ------> USART2_TX
|
||||
PD6 ------> USART2_RX
|
||||
PA2 ------> USART2_TX
|
||||
PA3 ------> USART2_RX
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5|GPIO_PIN_6);
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
|
||||
|
||||
/* USART2 DMA DeInit */
|
||||
HAL_DMA_DeInit(uartHandle->hdmarx);
|
||||
@@ -394,6 +586,54 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||
|
||||
/* USER CODE END USART2_MspDeInit 1 */
|
||||
}
|
||||
else if(uartHandle->Instance==USART3)
|
||||
{
|
||||
/* USER CODE BEGIN USART3_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END USART3_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_USART3_CLK_DISABLE();
|
||||
|
||||
/**USART3 GPIO Configuration
|
||||
PB10 ------> USART3_TX
|
||||
PB11 ------> USART3_RX
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
|
||||
|
||||
/* USART3 DMA DeInit */
|
||||
HAL_DMA_DeInit(uartHandle->hdmarx);
|
||||
HAL_DMA_DeInit(uartHandle->hdmatx);
|
||||
|
||||
/* USART3 interrupt Deinit */
|
||||
HAL_NVIC_DisableIRQ(USART3_IRQn);
|
||||
/* USER CODE BEGIN USART3_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END USART3_MspDeInit 1 */
|
||||
}
|
||||
else if(uartHandle->Instance==USART6)
|
||||
{
|
||||
/* USER CODE BEGIN USART6_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END USART6_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_USART6_CLK_DISABLE();
|
||||
|
||||
/**USART6 GPIO Configuration
|
||||
PC6 ------> USART6_TX
|
||||
PC7 ------> USART6_RX
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7);
|
||||
|
||||
/* USART6 DMA DeInit */
|
||||
HAL_DMA_DeInit(uartHandle->hdmarx);
|
||||
HAL_DMA_DeInit(uartHandle->hdmatx);
|
||||
|
||||
/* USART6 interrupt Deinit */
|
||||
HAL_NVIC_DisableIRQ(USART6_IRQn);
|
||||
/* USER CODE BEGIN USART6_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END USART6_MspDeInit 1 */
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
@@ -0,0 +1,729 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32f4xx_hal_spi.h
|
||||
* @author MCD Application Team
|
||||
* @brief Header file of SPI HAL module.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2016 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef STM32F4xx_HAL_SPI_H
|
||||
#define STM32F4xx_HAL_SPI_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stm32f4xx_hal_def.h"
|
||||
|
||||
/** @addtogroup STM32F4xx_HAL_Driver
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup SPI
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/** @defgroup SPI_Exported_Types SPI Exported Types
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief SPI Configuration Structure definition
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t Mode; /*!< Specifies the SPI operating mode.
|
||||
This parameter can be a value of @ref SPI_Mode */
|
||||
|
||||
uint32_t Direction; /*!< Specifies the SPI bidirectional mode state.
|
||||
This parameter can be a value of @ref SPI_Direction */
|
||||
|
||||
uint32_t DataSize; /*!< Specifies the SPI data size.
|
||||
This parameter can be a value of @ref SPI_Data_Size */
|
||||
|
||||
uint32_t CLKPolarity; /*!< Specifies the serial clock steady state.
|
||||
This parameter can be a value of @ref SPI_Clock_Polarity */
|
||||
|
||||
uint32_t CLKPhase; /*!< Specifies the clock active edge for the bit capture.
|
||||
This parameter can be a value of @ref SPI_Clock_Phase */
|
||||
|
||||
uint32_t NSS; /*!< Specifies whether the NSS signal is managed by
|
||||
hardware (NSS pin) or by software using the SSI bit.
|
||||
This parameter can be a value of @ref SPI_Slave_Select_management */
|
||||
|
||||
uint32_t BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be
|
||||
used to configure the transmit and receive SCK clock.
|
||||
This parameter can be a value of @ref SPI_BaudRate_Prescaler
|
||||
@note The communication clock is derived from the master
|
||||
clock. The slave clock does not need to be set. */
|
||||
|
||||
uint32_t FirstBit; /*!< Specifies whether data transfers start from MSB or LSB bit.
|
||||
This parameter can be a value of @ref SPI_MSB_LSB_transmission */
|
||||
|
||||
uint32_t TIMode; /*!< Specifies if the TI mode is enabled or not.
|
||||
This parameter can be a value of @ref SPI_TI_mode */
|
||||
|
||||
uint32_t CRCCalculation; /*!< Specifies if the CRC calculation is enabled or not.
|
||||
This parameter can be a value of @ref SPI_CRC_Calculation */
|
||||
|
||||
uint32_t CRCPolynomial; /*!< Specifies the polynomial used for the CRC calculation.
|
||||
This parameter must be an odd number between Min_Data = 1 and Max_Data = 65535 */
|
||||
} SPI_InitTypeDef;
|
||||
|
||||
/**
|
||||
* @brief HAL SPI State structure definition
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
HAL_SPI_STATE_RESET = 0x00U, /*!< Peripheral not Initialized */
|
||||
HAL_SPI_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */
|
||||
HAL_SPI_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */
|
||||
HAL_SPI_STATE_BUSY_TX = 0x03U, /*!< Data Transmission process is ongoing */
|
||||
HAL_SPI_STATE_BUSY_RX = 0x04U, /*!< Data Reception process is ongoing */
|
||||
HAL_SPI_STATE_BUSY_TX_RX = 0x05U, /*!< Data Transmission and Reception process is ongoing */
|
||||
HAL_SPI_STATE_ERROR = 0x06U, /*!< SPI error state */
|
||||
HAL_SPI_STATE_ABORT = 0x07U /*!< SPI abort is ongoing */
|
||||
} HAL_SPI_StateTypeDef;
|
||||
|
||||
/**
|
||||
* @brief SPI handle Structure definition
|
||||
*/
|
||||
typedef struct __SPI_HandleTypeDef
|
||||
{
|
||||
SPI_TypeDef *Instance; /*!< SPI registers base address */
|
||||
|
||||
SPI_InitTypeDef Init; /*!< SPI communication parameters */
|
||||
|
||||
uint8_t *pTxBuffPtr; /*!< Pointer to SPI Tx transfer Buffer */
|
||||
|
||||
uint16_t TxXferSize; /*!< SPI Tx Transfer size */
|
||||
|
||||
__IO uint16_t TxXferCount; /*!< SPI Tx Transfer Counter */
|
||||
|
||||
uint8_t *pRxBuffPtr; /*!< Pointer to SPI Rx transfer Buffer */
|
||||
|
||||
uint16_t RxXferSize; /*!< SPI Rx Transfer size */
|
||||
|
||||
__IO uint16_t RxXferCount; /*!< SPI Rx Transfer Counter */
|
||||
|
||||
void (*RxISR)(struct __SPI_HandleTypeDef *hspi); /*!< function pointer on Rx ISR */
|
||||
|
||||
void (*TxISR)(struct __SPI_HandleTypeDef *hspi); /*!< function pointer on Tx ISR */
|
||||
|
||||
DMA_HandleTypeDef *hdmatx; /*!< SPI Tx DMA Handle parameters */
|
||||
|
||||
DMA_HandleTypeDef *hdmarx; /*!< SPI Rx DMA Handle parameters */
|
||||
|
||||
HAL_LockTypeDef Lock; /*!< Locking object */
|
||||
|
||||
__IO HAL_SPI_StateTypeDef State; /*!< SPI communication state */
|
||||
|
||||
__IO uint32_t ErrorCode; /*!< SPI Error code */
|
||||
|
||||
#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U)
|
||||
void (* TxCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Tx Completed callback */
|
||||
void (* RxCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Rx Completed callback */
|
||||
void (* TxRxCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI TxRx Completed callback */
|
||||
void (* TxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Tx Half Completed callback */
|
||||
void (* RxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Rx Half Completed callback */
|
||||
void (* TxRxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI TxRx Half Completed callback */
|
||||
void (* ErrorCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Error callback */
|
||||
void (* AbortCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Abort callback */
|
||||
void (* MspInitCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Msp Init callback */
|
||||
void (* MspDeInitCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Msp DeInit callback */
|
||||
|
||||
#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
|
||||
} SPI_HandleTypeDef;
|
||||
|
||||
#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U)
|
||||
/**
|
||||
* @brief HAL SPI Callback ID enumeration definition
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
HAL_SPI_TX_COMPLETE_CB_ID = 0x00U, /*!< SPI Tx Completed callback ID */
|
||||
HAL_SPI_RX_COMPLETE_CB_ID = 0x01U, /*!< SPI Rx Completed callback ID */
|
||||
HAL_SPI_TX_RX_COMPLETE_CB_ID = 0x02U, /*!< SPI TxRx Completed callback ID */
|
||||
HAL_SPI_TX_HALF_COMPLETE_CB_ID = 0x03U, /*!< SPI Tx Half Completed callback ID */
|
||||
HAL_SPI_RX_HALF_COMPLETE_CB_ID = 0x04U, /*!< SPI Rx Half Completed callback ID */
|
||||
HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID = 0x05U, /*!< SPI TxRx Half Completed callback ID */
|
||||
HAL_SPI_ERROR_CB_ID = 0x06U, /*!< SPI Error callback ID */
|
||||
HAL_SPI_ABORT_CB_ID = 0x07U, /*!< SPI Abort callback ID */
|
||||
HAL_SPI_MSPINIT_CB_ID = 0x08U, /*!< SPI Msp Init callback ID */
|
||||
HAL_SPI_MSPDEINIT_CB_ID = 0x09U /*!< SPI Msp DeInit callback ID */
|
||||
|
||||
} HAL_SPI_CallbackIDTypeDef;
|
||||
|
||||
/**
|
||||
* @brief HAL SPI Callback pointer definition
|
||||
*/
|
||||
typedef void (*pSPI_CallbackTypeDef)(SPI_HandleTypeDef *hspi); /*!< pointer to an SPI callback function */
|
||||
|
||||
#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/** @defgroup SPI_Exported_Constants SPI Exported Constants
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_Error_Code SPI Error Code
|
||||
* @{
|
||||
*/
|
||||
#define HAL_SPI_ERROR_NONE (0x00000000U) /*!< No error */
|
||||
#define HAL_SPI_ERROR_MODF (0x00000001U) /*!< MODF error */
|
||||
#define HAL_SPI_ERROR_CRC (0x00000002U) /*!< CRC error */
|
||||
#define HAL_SPI_ERROR_OVR (0x00000004U) /*!< OVR error */
|
||||
#define HAL_SPI_ERROR_FRE (0x00000008U) /*!< FRE error */
|
||||
#define HAL_SPI_ERROR_DMA (0x00000010U) /*!< DMA transfer error */
|
||||
#define HAL_SPI_ERROR_FLAG (0x00000020U) /*!< Error on RXNE/TXE/BSY Flag */
|
||||
#define HAL_SPI_ERROR_ABORT (0x00000040U) /*!< Error during SPI Abort procedure */
|
||||
#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U)
|
||||
#define HAL_SPI_ERROR_INVALID_CALLBACK (0x00000080U) /*!< Invalid Callback error */
|
||||
#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_Mode SPI Mode
|
||||
* @{
|
||||
*/
|
||||
#define SPI_MODE_SLAVE (0x00000000U)
|
||||
#define SPI_MODE_MASTER (SPI_CR1_MSTR | SPI_CR1_SSI)
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_Direction SPI Direction Mode
|
||||
* @{
|
||||
*/
|
||||
#define SPI_DIRECTION_2LINES (0x00000000U)
|
||||
#define SPI_DIRECTION_2LINES_RXONLY SPI_CR1_RXONLY
|
||||
#define SPI_DIRECTION_1LINE SPI_CR1_BIDIMODE
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_Data_Size SPI Data Size
|
||||
* @{
|
||||
*/
|
||||
#define SPI_DATASIZE_8BIT (0x00000000U)
|
||||
#define SPI_DATASIZE_16BIT SPI_CR1_DFF
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_Clock_Polarity SPI Clock Polarity
|
||||
* @{
|
||||
*/
|
||||
#define SPI_POLARITY_LOW (0x00000000U)
|
||||
#define SPI_POLARITY_HIGH SPI_CR1_CPOL
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_Clock_Phase SPI Clock Phase
|
||||
* @{
|
||||
*/
|
||||
#define SPI_PHASE_1EDGE (0x00000000U)
|
||||
#define SPI_PHASE_2EDGE SPI_CR1_CPHA
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_Slave_Select_management SPI Slave Select Management
|
||||
* @{
|
||||
*/
|
||||
#define SPI_NSS_SOFT SPI_CR1_SSM
|
||||
#define SPI_NSS_HARD_INPUT (0x00000000U)
|
||||
#define SPI_NSS_HARD_OUTPUT (SPI_CR2_SSOE << 16U)
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_BaudRate_Prescaler SPI BaudRate Prescaler
|
||||
* @{
|
||||
*/
|
||||
#define SPI_BAUDRATEPRESCALER_2 (0x00000000U)
|
||||
#define SPI_BAUDRATEPRESCALER_4 (SPI_CR1_BR_0)
|
||||
#define SPI_BAUDRATEPRESCALER_8 (SPI_CR1_BR_1)
|
||||
#define SPI_BAUDRATEPRESCALER_16 (SPI_CR1_BR_1 | SPI_CR1_BR_0)
|
||||
#define SPI_BAUDRATEPRESCALER_32 (SPI_CR1_BR_2)
|
||||
#define SPI_BAUDRATEPRESCALER_64 (SPI_CR1_BR_2 | SPI_CR1_BR_0)
|
||||
#define SPI_BAUDRATEPRESCALER_128 (SPI_CR1_BR_2 | SPI_CR1_BR_1)
|
||||
#define SPI_BAUDRATEPRESCALER_256 (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0)
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_MSB_LSB_transmission SPI MSB LSB Transmission
|
||||
* @{
|
||||
*/
|
||||
#define SPI_FIRSTBIT_MSB (0x00000000U)
|
||||
#define SPI_FIRSTBIT_LSB SPI_CR1_LSBFIRST
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_TI_mode SPI TI Mode
|
||||
* @{
|
||||
*/
|
||||
#define SPI_TIMODE_DISABLE (0x00000000U)
|
||||
#define SPI_TIMODE_ENABLE SPI_CR2_FRF
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_CRC_Calculation SPI CRC Calculation
|
||||
* @{
|
||||
*/
|
||||
#define SPI_CRCCALCULATION_DISABLE (0x00000000U)
|
||||
#define SPI_CRCCALCULATION_ENABLE SPI_CR1_CRCEN
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_Interrupt_definition SPI Interrupt Definition
|
||||
* @{
|
||||
*/
|
||||
#define SPI_IT_TXE SPI_CR2_TXEIE
|
||||
#define SPI_IT_RXNE SPI_CR2_RXNEIE
|
||||
#define SPI_IT_ERR SPI_CR2_ERRIE
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup SPI_Flags_definition SPI Flags Definition
|
||||
* @{
|
||||
*/
|
||||
#define SPI_FLAG_RXNE SPI_SR_RXNE /* SPI status flag: Rx buffer not empty flag */
|
||||
#define SPI_FLAG_TXE SPI_SR_TXE /* SPI status flag: Tx buffer empty flag */
|
||||
#define SPI_FLAG_BSY SPI_SR_BSY /* SPI status flag: Busy flag */
|
||||
#define SPI_FLAG_CRCERR SPI_SR_CRCERR /* SPI Error flag: CRC error flag */
|
||||
#define SPI_FLAG_MODF SPI_SR_MODF /* SPI Error flag: Mode fault flag */
|
||||
#define SPI_FLAG_OVR SPI_SR_OVR /* SPI Error flag: Overrun flag */
|
||||
#define SPI_FLAG_FRE SPI_SR_FRE /* SPI Error flag: TI mode frame format error flag */
|
||||
#define SPI_FLAG_MASK (SPI_SR_RXNE | SPI_SR_TXE | SPI_SR_BSY | SPI_SR_CRCERR\
|
||||
| SPI_SR_MODF | SPI_SR_OVR | SPI_SR_FRE)
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported macros -----------------------------------------------------------*/
|
||||
/** @defgroup SPI_Exported_Macros SPI Exported Macros
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @brief Reset SPI handle state.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U)
|
||||
#define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__) do{ \
|
||||
(__HANDLE__)->State = HAL_SPI_STATE_RESET; \
|
||||
(__HANDLE__)->MspInitCallback = NULL; \
|
||||
(__HANDLE__)->MspDeInitCallback = NULL; \
|
||||
} while(0)
|
||||
#else
|
||||
#define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SPI_STATE_RESET)
|
||||
#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
|
||||
|
||||
/** @brief Enable the specified SPI interrupts.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @param __INTERRUPT__ specifies the interrupt source to enable.
|
||||
* This parameter can be one of the following values:
|
||||
* @arg SPI_IT_TXE: Tx buffer empty interrupt enable
|
||||
* @arg SPI_IT_RXNE: RX buffer not empty interrupt enable
|
||||
* @arg SPI_IT_ERR: Error interrupt enable
|
||||
* @retval None
|
||||
*/
|
||||
#define __HAL_SPI_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CR2, (__INTERRUPT__))
|
||||
|
||||
/** @brief Disable the specified SPI interrupts.
|
||||
* @param __HANDLE__ specifies the SPI handle.
|
||||
* This parameter can be SPIx where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @param __INTERRUPT__ specifies the interrupt source to disable.
|
||||
* This parameter can be one of the following values:
|
||||
* @arg SPI_IT_TXE: Tx buffer empty interrupt enable
|
||||
* @arg SPI_IT_RXNE: RX buffer not empty interrupt enable
|
||||
* @arg SPI_IT_ERR: Error interrupt enable
|
||||
* @retval None
|
||||
*/
|
||||
#define __HAL_SPI_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->CR2, (__INTERRUPT__))
|
||||
|
||||
/** @brief Check whether the specified SPI interrupt source is enabled or not.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @param __INTERRUPT__ specifies the SPI interrupt source to check.
|
||||
* This parameter can be one of the following values:
|
||||
* @arg SPI_IT_TXE: Tx buffer empty interrupt enable
|
||||
* @arg SPI_IT_RXNE: RX buffer not empty interrupt enable
|
||||
* @arg SPI_IT_ERR: Error interrupt enable
|
||||
* @retval The new state of __IT__ (TRUE or FALSE).
|
||||
*/
|
||||
#define __HAL_SPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CR2\
|
||||
& (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
|
||||
|
||||
/** @brief Check whether the specified SPI flag is set or not.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @param __FLAG__ specifies the flag to check.
|
||||
* This parameter can be one of the following values:
|
||||
* @arg SPI_FLAG_RXNE: Receive buffer not empty flag
|
||||
* @arg SPI_FLAG_TXE: Transmit buffer empty flag
|
||||
* @arg SPI_FLAG_CRCERR: CRC error flag
|
||||
* @arg SPI_FLAG_MODF: Mode fault flag
|
||||
* @arg SPI_FLAG_OVR: Overrun flag
|
||||
* @arg SPI_FLAG_BSY: Busy flag
|
||||
* @arg SPI_FLAG_FRE: Frame format error flag
|
||||
* @retval The new state of __FLAG__ (TRUE or FALSE).
|
||||
*/
|
||||
#define __HAL_SPI_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
|
||||
|
||||
/** @brief Clear the SPI CRCERR pending flag.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#define __HAL_SPI_CLEAR_CRCERRFLAG(__HANDLE__) ((__HANDLE__)->Instance->SR = (uint16_t)(~SPI_FLAG_CRCERR))
|
||||
|
||||
/** @brief Clear the SPI MODF pending flag.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#define __HAL_SPI_CLEAR_MODFFLAG(__HANDLE__) \
|
||||
do{ \
|
||||
__IO uint32_t tmpreg_modf = 0x00U; \
|
||||
tmpreg_modf = (__HANDLE__)->Instance->SR; \
|
||||
CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_SPE); \
|
||||
UNUSED(tmpreg_modf); \
|
||||
} while(0U)
|
||||
|
||||
/** @brief Clear the SPI OVR pending flag.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#define __HAL_SPI_CLEAR_OVRFLAG(__HANDLE__) \
|
||||
do{ \
|
||||
__IO uint32_t tmpreg_ovr = 0x00U; \
|
||||
tmpreg_ovr = (__HANDLE__)->Instance->DR; \
|
||||
tmpreg_ovr = (__HANDLE__)->Instance->SR; \
|
||||
UNUSED(tmpreg_ovr); \
|
||||
} while(0U)
|
||||
|
||||
/** @brief Clear the SPI FRE pending flag.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#define __HAL_SPI_CLEAR_FREFLAG(__HANDLE__) \
|
||||
do{ \
|
||||
__IO uint32_t tmpreg_fre = 0x00U; \
|
||||
tmpreg_fre = (__HANDLE__)->Instance->SR; \
|
||||
UNUSED(tmpreg_fre); \
|
||||
}while(0U)
|
||||
|
||||
/** @brief Enable the SPI peripheral.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#define __HAL_SPI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_SPE)
|
||||
|
||||
/** @brief Disable the SPI peripheral.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#define __HAL_SPI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_SPE)
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Private macros ------------------------------------------------------------*/
|
||||
/** @defgroup SPI_Private_Macros SPI Private Macros
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @brief Set the SPI transmit-only mode.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#define SPI_1LINE_TX(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_BIDIOE)
|
||||
|
||||
/** @brief Set the SPI receive-only mode.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#define SPI_1LINE_RX(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_BIDIOE)
|
||||
|
||||
/** @brief Reset the CRC calculation of the SPI.
|
||||
* @param __HANDLE__ specifies the SPI Handle.
|
||||
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
#define SPI_RESET_CRC(__HANDLE__) do{CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);\
|
||||
SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);}while(0U)
|
||||
|
||||
/** @brief Check whether the specified SPI flag is set or not.
|
||||
* @param __SR__ copy of SPI SR register.
|
||||
* @param __FLAG__ specifies the flag to check.
|
||||
* This parameter can be one of the following values:
|
||||
* @arg SPI_FLAG_RXNE: Receive buffer not empty flag
|
||||
* @arg SPI_FLAG_TXE: Transmit buffer empty flag
|
||||
* @arg SPI_FLAG_CRCERR: CRC error flag
|
||||
* @arg SPI_FLAG_MODF: Mode fault flag
|
||||
* @arg SPI_FLAG_OVR: Overrun flag
|
||||
* @arg SPI_FLAG_BSY: Busy flag
|
||||
* @arg SPI_FLAG_FRE: Frame format error flag
|
||||
* @retval SET or RESET.
|
||||
*/
|
||||
#define SPI_CHECK_FLAG(__SR__, __FLAG__) ((((__SR__) & ((__FLAG__) & SPI_FLAG_MASK)) == \
|
||||
((__FLAG__) & SPI_FLAG_MASK)) ? SET : RESET)
|
||||
|
||||
/** @brief Check whether the specified SPI Interrupt is set or not.
|
||||
* @param __CR2__ copy of SPI CR2 register.
|
||||
* @param __INTERRUPT__ specifies the SPI interrupt source to check.
|
||||
* This parameter can be one of the following values:
|
||||
* @arg SPI_IT_TXE: Tx buffer empty interrupt enable
|
||||
* @arg SPI_IT_RXNE: RX buffer not empty interrupt enable
|
||||
* @arg SPI_IT_ERR: Error interrupt enable
|
||||
* @retval SET or RESET.
|
||||
*/
|
||||
#define SPI_CHECK_IT_SOURCE(__CR2__, __INTERRUPT__) ((((__CR2__) & (__INTERRUPT__)) == \
|
||||
(__INTERRUPT__)) ? SET : RESET)
|
||||
|
||||
/** @brief Checks if SPI Mode parameter is in allowed range.
|
||||
* @param __MODE__ specifies the SPI Mode.
|
||||
* This parameter can be a value of @ref SPI_Mode
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_MODE(__MODE__) (((__MODE__) == SPI_MODE_SLAVE) || \
|
||||
((__MODE__) == SPI_MODE_MASTER))
|
||||
|
||||
/** @brief Checks if SPI Direction Mode parameter is in allowed range.
|
||||
* @param __MODE__ specifies the SPI Direction Mode.
|
||||
* This parameter can be a value of @ref SPI_Direction
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_DIRECTION(__MODE__) (((__MODE__) == SPI_DIRECTION_2LINES) || \
|
||||
((__MODE__) == SPI_DIRECTION_2LINES_RXONLY) || \
|
||||
((__MODE__) == SPI_DIRECTION_1LINE))
|
||||
|
||||
/** @brief Checks if SPI Direction Mode parameter is 2 lines.
|
||||
* @param __MODE__ specifies the SPI Direction Mode.
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_DIRECTION_2LINES(__MODE__) ((__MODE__) == SPI_DIRECTION_2LINES)
|
||||
|
||||
/** @brief Checks if SPI Direction Mode parameter is 1 or 2 lines.
|
||||
* @param __MODE__ specifies the SPI Direction Mode.
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_DIRECTION_2LINES_OR_1LINE(__MODE__) (((__MODE__) == SPI_DIRECTION_2LINES) || \
|
||||
((__MODE__) == SPI_DIRECTION_1LINE))
|
||||
|
||||
/** @brief Checks if SPI Data Size parameter is in allowed range.
|
||||
* @param __DATASIZE__ specifies the SPI Data Size.
|
||||
* This parameter can be a value of @ref SPI_Data_Size
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_DATASIZE(__DATASIZE__) (((__DATASIZE__) == SPI_DATASIZE_16BIT) || \
|
||||
((__DATASIZE__) == SPI_DATASIZE_8BIT))
|
||||
|
||||
/** @brief Checks if SPI Serial clock steady state parameter is in allowed range.
|
||||
* @param __CPOL__ specifies the SPI serial clock steady state.
|
||||
* This parameter can be a value of @ref SPI_Clock_Polarity
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_CPOL(__CPOL__) (((__CPOL__) == SPI_POLARITY_LOW) || \
|
||||
((__CPOL__) == SPI_POLARITY_HIGH))
|
||||
|
||||
/** @brief Checks if SPI Clock Phase parameter is in allowed range.
|
||||
* @param __CPHA__ specifies the SPI Clock Phase.
|
||||
* This parameter can be a value of @ref SPI_Clock_Phase
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_CPHA(__CPHA__) (((__CPHA__) == SPI_PHASE_1EDGE) || \
|
||||
((__CPHA__) == SPI_PHASE_2EDGE))
|
||||
|
||||
/** @brief Checks if SPI Slave Select parameter is in allowed range.
|
||||
* @param __NSS__ specifies the SPI Slave Select management parameter.
|
||||
* This parameter can be a value of @ref SPI_Slave_Select_management
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_NSS(__NSS__) (((__NSS__) == SPI_NSS_SOFT) || \
|
||||
((__NSS__) == SPI_NSS_HARD_INPUT) || \
|
||||
((__NSS__) == SPI_NSS_HARD_OUTPUT))
|
||||
|
||||
/** @brief Checks if SPI Baudrate prescaler parameter is in allowed range.
|
||||
* @param __PRESCALER__ specifies the SPI Baudrate prescaler.
|
||||
* This parameter can be a value of @ref SPI_BaudRate_Prescaler
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_BAUDRATE_PRESCALER(__PRESCALER__) (((__PRESCALER__) == SPI_BAUDRATEPRESCALER_2) || \
|
||||
((__PRESCALER__) == SPI_BAUDRATEPRESCALER_4) || \
|
||||
((__PRESCALER__) == SPI_BAUDRATEPRESCALER_8) || \
|
||||
((__PRESCALER__) == SPI_BAUDRATEPRESCALER_16) || \
|
||||
((__PRESCALER__) == SPI_BAUDRATEPRESCALER_32) || \
|
||||
((__PRESCALER__) == SPI_BAUDRATEPRESCALER_64) || \
|
||||
((__PRESCALER__) == SPI_BAUDRATEPRESCALER_128) || \
|
||||
((__PRESCALER__) == SPI_BAUDRATEPRESCALER_256))
|
||||
|
||||
/** @brief Checks if SPI MSB LSB transmission parameter is in allowed range.
|
||||
* @param __BIT__ specifies the SPI MSB LSB transmission (whether data transfer starts from MSB or LSB bit).
|
||||
* This parameter can be a value of @ref SPI_MSB_LSB_transmission
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_FIRST_BIT(__BIT__) (((__BIT__) == SPI_FIRSTBIT_MSB) || \
|
||||
((__BIT__) == SPI_FIRSTBIT_LSB))
|
||||
|
||||
/** @brief Checks if SPI TI mode parameter is in allowed range.
|
||||
* @param __MODE__ specifies the SPI TI mode.
|
||||
* This parameter can be a value of @ref SPI_TI_mode
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_TIMODE(__MODE__) (((__MODE__) == SPI_TIMODE_DISABLE) || \
|
||||
((__MODE__) == SPI_TIMODE_ENABLE))
|
||||
|
||||
/** @brief Checks if SPI CRC calculation enabled state is in allowed range.
|
||||
* @param __CALCULATION__ specifies the SPI CRC calculation enable state.
|
||||
* This parameter can be a value of @ref SPI_CRC_Calculation
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_CRC_CALCULATION(__CALCULATION__) (((__CALCULATION__) == SPI_CRCCALCULATION_DISABLE) || \
|
||||
((__CALCULATION__) == SPI_CRCCALCULATION_ENABLE))
|
||||
|
||||
/** @brief Checks if SPI polynomial value to be used for the CRC calculation, is in allowed range.
|
||||
* @param __POLYNOMIAL__ specifies the SPI polynomial value to be used for the CRC calculation.
|
||||
* This parameter must be a number between Min_Data = 0 and Max_Data = 65535
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_CRC_POLYNOMIAL(__POLYNOMIAL__) (((__POLYNOMIAL__) >= 0x1U) && \
|
||||
((__POLYNOMIAL__) <= 0xFFFFU) && \
|
||||
(((__POLYNOMIAL__)&0x1U) != 0U))
|
||||
|
||||
/** @brief Checks if DMA handle is valid.
|
||||
* @param __HANDLE__ specifies a DMA Handle.
|
||||
* @retval None
|
||||
*/
|
||||
#define IS_SPI_DMA_HANDLE(__HANDLE__) ((__HANDLE__) != NULL)
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported functions --------------------------------------------------------*/
|
||||
/** @addtogroup SPI_Exported_Functions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup SPI_Exported_Functions_Group1
|
||||
* @{
|
||||
*/
|
||||
/* Initialization/de-initialization functions ********************************/
|
||||
HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi);
|
||||
HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi);
|
||||
|
||||
/* Callbacks Register/UnRegister functions ***********************************/
|
||||
#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U)
|
||||
HAL_StatusTypeDef HAL_SPI_RegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID,
|
||||
pSPI_CallbackTypeDef pCallback);
|
||||
HAL_StatusTypeDef HAL_SPI_UnRegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID);
|
||||
#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup SPI_Exported_Functions_Group2
|
||||
* @{
|
||||
*/
|
||||
/* I/O operation functions ***************************************************/
|
||||
HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
|
||||
HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
|
||||
HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size,
|
||||
uint32_t Timeout);
|
||||
HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
|
||||
HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
|
||||
HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData,
|
||||
uint16_t Size);
|
||||
HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
|
||||
HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
|
||||
HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData,
|
||||
uint16_t Size);
|
||||
HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi);
|
||||
HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi);
|
||||
HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi);
|
||||
/* Transfer Abort functions */
|
||||
HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi);
|
||||
HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi);
|
||||
|
||||
void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi);
|
||||
void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi);
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup SPI_Exported_Functions_Group3
|
||||
* @{
|
||||
*/
|
||||
/* Peripheral State and Error functions ***************************************/
|
||||
HAL_SPI_StateTypeDef HAL_SPI_GetState(SPI_HandleTypeDef *hspi);
|
||||
uint32_t HAL_SPI_GetError(SPI_HandleTypeDef *hspi);
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* STM32F4xx_HAL_SPI_H */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user