Browse Source

更新PWM触发逻辑&&添加日志

master
zhaohe 4 years ago
parent
commit
935cfc6b69
  1. 3
      Core/Src/main.c
  2. 4
      Core/Src/tim.c
  3. 1514
      MDK-ARM/WaveBox.uvguix.zel
  4. 181
      MDK-ARM/WaveBox.uvoptx
  5. 35
      MDK-ARM/WaveBox.uvprojx
  6. 50
      MDK-ARM/startup_stm32f429xx.lst
  7. 4
      MDK-ARM/startup_stm32f429xx.s
  8. BIN
      SCommTest.exe
  9. 8
      WaveBox.ioc
  10. 1
      debug_config.ini
  11. 13
      usec/board.h
  12. 2
      usec/port.h
  13. 92
      usec/user_main.c
  14. BIN
      脉冲发生器安装程序Ver2.EXE

3
Core/Src/main.c

@ -97,7 +97,8 @@ int main(void)
MX_USART1_UART_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
extern void user_main();
user_main();
/* USER CODE END 2 */
/* Infinite loop */

4
Core/Src/tim.c

@ -39,7 +39,7 @@ void MX_TIM3_Init(void)
TIM_OC_InitTypeDef sConfigOC = {0};
htim3.Instance = TIM3;
htim3.Init.Prescaler = 1;
htim3.Init.Prescaler = 65535;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 0xFFFF;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
@ -58,7 +58,7 @@ void MX_TIM3_Init(void)
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_ENABLE;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
{
Error_Handler();

1514
MDK-ARM/WaveBox.uvguix.zel
File diff suppressed because it is too large
View File

181
MDK-ARM/WaveBox.uvoptx

@ -121,8 +121,8 @@
</Book>
</Books>
<DebugOpt>
<uSim>0</uSim>
<uTrg>1</uTrg>
<uSim>1</uSim>
<uTrg>0</uTrg>
<sLdApp>1</sLdApp>
<sGomain>1</sGomain>
<sRbreak>1</sRbreak>
@ -131,23 +131,23 @@
<sRfunc>1</sRfunc>
<sRbox>1</sRbox>
<tLdApp>1</tLdApp>
<tGomain>1</tGomain>
<tGomain>0</tGomain>
<tRbreak>1</tRbreak>
<tRwatch>1</tRwatch>
<tRmem>1</tRmem>
<tRfunc>1</tRfunc>
<tRfunc>0</tRfunc>
<tRbox>1</tRbox>
<tRtrace>1</tRtrace>
<sRSysVw>1</sRSysVw>
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
<nTsel>11</nTsel>
<nTsel>8</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<sDlgPa></sDlgPa>
<sIfile></sIfile>
<sIfile>..\debug_config.ini</sIfile>
<tDll></tDll>
<tDllPa></tDllPa>
<tDlgDll></tDlgDll>
@ -158,6 +158,21 @@
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGDARM</Key>
<Name>(1010=1190,408,1600,955,0)(1007=344,569,521,834,0)(1008=577,532,943,758,0)(1009=958,226,1192,764,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name>-T0</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512 -FS08000000 -FL080000 -FP0($$Device:STM32F429VETx$CMSIS/Flash/STM32F4xx_512.FLM))</Name>
</SetRegEntry>
@ -168,18 +183,26 @@
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>GPIOC</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>0</aLwin>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>0</viewmode>
<viewmode>1</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
@ -188,10 +211,10 @@
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aLa>1</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
<aSer4>1</aSer4>
<StkLoc>0</StkLoc>
<TrcWin>0</TrcWin>
<newCpu>0</newCpu>
@ -224,6 +247,40 @@
</Group>
<Group>
<GroupName>app</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>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\usec\port.c</PathWithFileName>
<FilenameWithoutPath>port.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\usec\user_main.c</PathWithFileName>
<FilenameWithoutPath>user_main.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -238,8 +295,8 @@
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>2</FileNumber>
<GroupNumber>4</GroupNumber>
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -251,8 +308,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>3</FileNumber>
<GroupNumber>4</GroupNumber>
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -264,8 +321,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>4</FileNumber>
<GroupNumber>4</GroupNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -277,8 +334,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>5</FileNumber>
<GroupNumber>4</GroupNumber>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -290,8 +347,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>6</FileNumber>
<GroupNumber>4</GroupNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -303,8 +360,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>7</FileNumber>
<GroupNumber>4</GroupNumber>
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -316,8 +373,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>8</FileNumber>
<GroupNumber>4</GroupNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -329,8 +386,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>9</FileNumber>
<GroupNumber>4</GroupNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -350,8 +407,8 @@
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>10</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -363,8 +420,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>11</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -376,8 +433,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>12</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -389,8 +446,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>13</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -402,8 +459,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>14</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -415,8 +472,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>15</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -428,8 +485,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>16</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -441,8 +498,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>17</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -454,8 +511,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>18</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -467,8 +524,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>19</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -480,8 +537,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>20</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -493,8 +550,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>21</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -506,8 +563,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>22</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -519,8 +576,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>23</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -532,8 +589,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>24</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -545,8 +602,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>25</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -558,8 +615,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>26</FileNumber>
<GroupNumber>5</GroupNumber>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@ -579,8 +636,8 @@
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>27</FileNumber>
<GroupNumber>6</GroupNumber>
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>

35
MDK-ARM/WaveBox.uvprojx

@ -106,7 +106,7 @@
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments>-REMAP -MPU</SimDllArguments>
<SimDllArguments>-REMAP</SimDllArguments>
<SimDlgDll>DCM.DLL</SimDlgDll>
<SimDlgDllArguments>-pCM4</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName>
@ -123,7 +123,7 @@
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
<Simulator>
<UseSimulator>0</UseSimulator>
<UseSimulator>1</UseSimulator>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
@ -135,25 +135,25 @@
<RestoreSysVw>1</RestoreSysVw>
</Simulator>
<Target>
<UseTarget>1</UseTarget>
<UseTarget>0</UseTarget>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RunToMain>0</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>1</RestoreFunctions>
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>1</RestoreTracepoints>
<RestoreSysVw>1</RestoreSysVw>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>11</TargetSelection>
<TargetSelection>8</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<InitializationFile>..\debug_config.ini</InitializationFile>
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
@ -171,11 +171,11 @@
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>4107</DriverSelection>
<DriverSelection>4103</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>STLink\ST-LINKIII-KEIL_SWO.dll</Flash2>
<Flash3></Flash3>
<Flash3>"" ()</Flash3>
<Flash4></Flash4>
<pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp>
@ -365,7 +365,7 @@
<MiscControls>--diag_suppress=381 --diag_suppress=1 --diag_suppress=177 --diag_suppress=111 --diag_suppress=1295</MiscControls>
<Define>USE_HAL_DRIVER,STM32F429xx</Define>
<Undefine></Undefine>
<IncludePath>../Core/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy; ../Drivers/CMSIS/Device/ST/STM32F4xx/Include; ../Drivers/CMSIS/Include</IncludePath>
<IncludePath>../Core/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy; ../Drivers/CMSIS/Device/ST/STM32F4xx/Include; ../Drivers/CMSIS/Include</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -416,6 +416,21 @@
</Files>
</Group>
<Group>
<GroupName>app</GroupName>
<Files>
<File>
<FileName>port.c</FileName>
<FileType>1</FileType>
<FilePath>..\usec\port.c</FilePath>
</File>
<File>
<FileName>user_main.c</FileName>
<FileType>1</FileType>
<FilePath>..\usec\user_main.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>
<Group>

50
MDK-ARM/startup_stm32f429xx.lst

@ -49,44 +49,44 @@ ARM Macro Assembler Page 1
30 00000000 ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
31 00000000 ; </h>
32 00000000
33 00000000 00000400
33 00000000 00001000
Stack_Size
EQU 0x400
EQU 0x1000
34 00000000
35 00000000 AREA STACK, NOINIT, READWRITE, ALIGN
=3
36 00000000 Stack_Mem
SPACE Stack_Size
37 00000400 __initial_sp
38 00000400
39 00000400
40 00000400 ; <h> Heap Configuration
41 00000400 ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
42 00000400 ; </h>
37 00001000 __initial_sp
38 00001000
39 00001000
40 00001000 ; <h> Heap Configuration
41 00001000 ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
42 00001000 ; </h>
ARM Macro Assembler Page 2
43 00000400
44 00000400 00000200
43 00001000
44 00001000 00000000
Heap_Size
EQU 0x200
45 00000400
46 00000400 AREA HEAP, NOINIT, READWRITE, ALIGN=
EQU 0x0
45 00001000
46 00001000 AREA HEAP, NOINIT, READWRITE, ALIGN=
3
47 00000000 __heap_base
48 00000000 Heap_Mem
SPACE Heap_Size
49 00000200 __heap_limit
50 00000200
51 00000200 PRESERVE8
52 00000200 THUMB
53 00000200
54 00000200
55 00000200 ; Vector Table Mapped to Address 0 at Reset
56 00000200 AREA RESET, DATA, READONLY
49 00000000 __heap_limit
50 00000000
51 00000000 PRESERVE8
52 00000000 THUMB
53 00000000
54 00000000
55 00000000 ; Vector Table Mapped to Address 0 at Reset
56 00000000 AREA RESET, DATA, READONLY
57 00000000 EXPORT __Vectors
58 00000000 EXPORT __Vectors_End
59 00000000 EXPORT __Vectors_Size
@ -902,7 +902,7 @@ Symbol: Stack_Mem
Uses
None
Comment: Stack_Mem unused
__initial_sp 00000400
__initial_sp 00001000
Symbol: __initial_sp
Definitions
@ -942,7 +942,7 @@ Symbol: __heap_base
Uses
At line 428 in file startup_stm32f429xx.s
Comment: __heap_base used once
__heap_limit 00000200
__heap_limit 00000000
Symbol: __heap_limit
Definitions
@ -2003,7 +2003,7 @@ Symbol: WWDG_IRQHandler
ARM Macro Assembler Page 1 Alphabetic symbol ordering
Absolute symbols
Heap_Size 00000200
Heap_Size 00000000
Symbol: Heap_Size
Definitions
@ -2011,7 +2011,7 @@ Symbol: Heap_Size
Uses
At line 48 in file startup_stm32f429xx.s
Comment: Heap_Size used once
Stack_Size 00000400
Stack_Size 00001000
Symbol: Stack_Size
Definitions

4
MDK-ARM/startup_stm32f429xx.s

@ -30,7 +30,7 @@
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Stack_Size EQU 0x400
Stack_Size EQU 0x1000
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
@ -41,7 +41,7 @@ __initial_sp
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x200
Heap_Size EQU 0x0
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base

BIN
SCommTest.exe

8
WaveBox.ioc

@ -141,7 +141,7 @@ ProjectManager.DeviceId=STM32F429VETx
ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.25.2
ProjectManager.FreePins=true
ProjectManager.HalAssertFull=true
ProjectManager.HeapSize=0x200
ProjectManager.HeapSize=0x0
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=0
@ -151,7 +151,7 @@ ProjectManager.PreviousToolchain=
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=WaveBox.ioc
ProjectManager.ProjectName=WaveBox
ProjectManager.StackSize=0x400
ProjectManager.StackSize=0x1000
ProjectManager.TargetToolchain=MDK-ARM V5.27
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=false
@ -204,9 +204,9 @@ TIM3.IPParameters=OCPolarity_1,CounterMode,AutoReloadPreload,TIM_MasterSlaveMode
TIM3.OCMode_PWM-PWM\ Generation1\ CH1=TIM_OCMODE_PWM1
TIM3.OCPolarity_1=TIM_OCPOLARITY_LOW
TIM3.Period=0xFFFF
TIM3.Prescaler=1
TIM3.Prescaler=65535
TIM3.TIM_MasterOutputTrigger=TIM_TRGO_RESET
TIM3.TIM_MasterSlaveMode=TIM_MASTERSLAVEMODE_ENABLE
TIM3.TIM_MasterSlaveMode=TIM_MASTERSLAVEMODE_DISABLE
TIM8.Channel-Output\ Compare1\ No\ Output=TIM_CHANNEL_1
TIM8.IPParameters=Channel-Output Compare1 No Output
USART1.BaudRate=9600

1
debug_config.ini

@ -0,0 +1 @@
map 0x40000000,0x400FFFFF read write

13
usec/board.h

@ -4,6 +4,17 @@
#define ORDER_UART
#define DEBUG_UART huart2
#define DEBUG_LIGHT_PORT GPIOA
#define DEBUG_LIGHT_PIN GPIO_PIN_1
#define EXT_OEn_PORT GPIOC
#define EXT_OEn_PIN GPIO_PIN_0
#define EXT_OEn_SET(value) \
HAL_GPIO_WritePin(EXT_OEn_PORT, EXT_OEn_PIN, \
value ? GPIO_PIN_RESET : GPIO_PIN_SET)
#define PWM_OEn_PORT GPIOC
#define PWM_OEn_PIN GPIO_PIN_1
#define PWM_OEn_SET(value) \
HAL_GPIO_WritePin(PWM_OEn_PORT, PWM_OEn_PIN, \
value ? GPIO_PIN_RESET : GPIO_PIN_SET)

2
usec/port.h

@ -1,3 +1,3 @@
#include <stdint.h>
uint32_t port_haspassedms(uint32_t ticket)
uint32_t port_haspassedms(uint32_t ticket);

92
usec/user_main.c

@ -5,9 +5,10 @@
#include <string.h>
#include "board.h"
#include "port.h"
//
#include "gpio.h"
#include "main.h"
#include "port.h"
#include "tim.h"
#include "usart.h"
//
@ -22,21 +23,40 @@
/**
* @brief
*/
#define LOG_RELEASE(fmt, ...) printf("" fmt, ##__VA_ARGS__);
#define LOGI(fmt, ...) printf("I:" fmt, ##__VA_ARGS__);
#define LOGD(fmt, ...) printf("D:" fmt, ##__VA_ARGS__);
#define LOGE(fmt, ...) printf("E:" fmt, ##__VA_ARGS__);
static uint8_t s_order_rxbuf;
static uint8_t s_rxbuf[20];
static uint8_t s_rxbuf_has_received;
static bool s_rxbuf_is_ready;
//PWM
static bool g_continue_output_mode;
static uint32_t g_pulse_num = 0;
static bool g_internal_sync_mode;
void set_mode_in_internal_pwm_mode() {
LOG_RELEASE("内部信号同步模式\n");
EXT_OEn_SET(true);
PWM_OEn_SET(false);
g_internal_sync_mode = true;
}
void set_mode_in_external_pwm_mode() {
EXT_OEn_SET(false);
PWM_OEn_SET(true);
LOG_RELEASE("外部信号同步模式\n");
g_internal_sync_mode = false;
}
/**
* @brief
*
* @param husart
*/
void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) {
if (&huart1 == husart) {
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
if (&huart1 == huart) {
/**
* @brief
*/
@ -54,12 +74,12 @@ void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) {
}
}
HAL_USART_Receive_IT(&huart1, &s_order_rxbuf, 1);
HAL_UART_Receive_IT(&huart1, &s_order_rxbuf, 1);
}
}
void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) {
if (&huart1 == husart) {
HAL_USART_Receive_IT(&huart1, &s_order_rxbuf, 1);
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) {
if (&huart1 == huart) {
HAL_UART_Receive_IT(&huart1, &s_order_rxbuf, 1);
}
}
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {
@ -67,10 +87,11 @@ void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {
/**
* @brief
*/
if (g_continue_output_mode) return;
if (g_pulse_num == 0) {
HAL_TIM_PWM_Stop_IT(&htim3, TIM_CHANNEL_1);
} else {
__HAL_TIM_SET_COUNTER(&htim3, 0);
g_pulse_num--;
}
}
@ -103,39 +124,52 @@ uint16_t get_tim_compare_value(int32_t target_pluse_width_us,
* @param pluse_width
* @param pluse_num
*/
void trigger_pwm(int32_t freq, int32_t pluse_width, int32_t pluse_num) {
printf("I:trigger pwm freq[%d] pluse_width[%d]us pluse_num[%d]\n", freq,
pluse_width, pluse_num);
void trigger_pwm(int32_t freq, float duty, int32_t pluse_num) {
#if 1
LOGI("I:trigger pwm freq[%d] duty[%f]us pluse_num[%d]\n", freq, duty,
pluse_num);
#endif
//PWM输
if (freq == 0 || pluse_width == 0 || pluse_num == 0) {
printf("D:trigger pwm fail,parameter is error\n");
HAL_TIM_PWM_Stop_IT(&htim3, TIM_CHANNEL_1);
if (freq == 0) {
LOGE("E:trigger pwm fail,freq == 0\n");
return;
}
// ,
float psc_x_arr = 90 * 1000 * 1000 / freq;
uint16_t psc = 0;
uint16_t arr = 65535;
float psc_x_arr = 84 * 1000 * 1000 / freq;
uint32_t psc = 0;
uint32_t arr = 65534;
for (; arr > 2; arr--) {
psc = psc_x_arr / arr;
if (psc >= 1) {
uint32_t tmparr = psc_x_arr / psc;
if (tmparr >= 65534) continue;
break;
}
}
if (psc == 0) return;
if (arr <= 3) return; //
arr = psc_x_arr / psc;
arr = arr - 1;
psc = psc - 1;
__HAL_TIM_SET_AUTORELOAD(&htim3, arr);
__HAL_TIM_SET_PRESCALER(&htim3, psc);
// PWM通道占空比
uint16_t comparevalue = 0;
comparevalue = get_tim_compare_value(pluse_width, freq, arr);
uint16_t comparevalue = duty * arr;
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, comparevalue);
g_pulse_num = pluse_num;
if (pluse_num == 0) {
g_continue_output_mode = true;
} else {
g_pulse_num = pluse_num - 1;
g_continue_output_mode = false;
}
__HAL_TIM_SET_COUNTER(&htim3, 0);
LOGI("I:trigger arr [%d] psc[%d] comparevalue[%d]\n", arr, psc, comparevalue);
HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_1);
}
@ -164,15 +198,27 @@ void process_rxbuf() {
pluse_width = atoi(pluse_width_c);
pluse_num = atoi(pluse_num_c);
//使
set_mode_in_internal_pwm_mode();
/**
* @brief pwm
*/
trigger_pwm(freq, pluse_width, pluse_num);
LOG_RELEASE("触发PWM 频率:%dHZ,脉冲宽度:%dus,脉冲数量:%d\n", freq,
pluse_width, pluse_num);
float duty = pluse_width / (1 * 1000 * 1000 / freq);
trigger_pwm(freq, duty, pluse_num);
}
void user_main() {
HAL_USART_Receive_IT(&huart1, &s_order_rxbuf, 1);
trigger_pwm(1000, 500 * 1000, 10);
LOG_RELEASE("同步盒子\n");
LOG_RELEASE("网址:%s\n", "www.zwtime.com");
LOG_RELEASE("软件版本:%s\n", VERSION);
LOGI("I:wavebox sv:%s\n", VERSION);
HAL_UART_Receive_IT(&huart1, &s_order_rxbuf, 1);
set_mode_in_external_pwm_mode();
while (true) {
/**
* @brief

BIN
脉冲发生器安装程序Ver2.EXE

Loading…
Cancel
Save