修复串口发送容易系统卡死的问题,修复雷达测距超距输出为零时车不动的问题 zsxfly20240629

This commit is contained in:
zsx 2024-06-29 17:07:18 +08:00
parent f31ba673e0
commit c3b26ab592
11 changed files with 2335 additions and 1837 deletions

View File

@ -142,5 +142,5 @@ void uart_send(uint8_t port, uint16_t len, const uint8_t *data)
}
while (!(uart->SR.TBEM)); // wait tx finish
while (uart->SR.BUSY); // wait idle state
//while (uart->SR.BUSY); // wait idle state
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="EventRecorderStub" version="1.0.0"/> <!--name and version of the component-->
<events>
</events>
</component_viewer>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -117,11 +117,6 @@
<pMon>Segger\JL2CM3.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name></Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
@ -130,7 +125,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>JL2CM3</Key>
<Name>-U59410384 -O78 -S1 -ZTIFSpeedSel10000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO11 -FD20003000 -FC5000 -FN1 -FF0B6x_256kB_PY_D.FLM -FS018000000 -FL040000 -FP0($$Device:B6x$.\Flash\B6x_256kB_PY_D.FLM)</Name>
<Name>-U20090928 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO11 -FD20003000 -FC5000 -FN1 -FF0B6x_256kB_PY_D.FLM -FS018000000 -FL040000 -FP0($$Device:B6x$.\Flash\B6x_256kB_PY_D.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@ -148,7 +143,56 @@
<Name></Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>0</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>402735504</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename></Filename>
<ExecCommand></ExecCommand>
<Expression>0x18014190</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>0</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>402735500</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename></Filename>
<ExecCommand></ExecCommand>
<Expression>0x1801418C</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>0</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>402735502</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename></Filename>
<ExecCommand></ExecCommand>
<Expression>0x1801418E</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
@ -167,7 +211,7 @@
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>0</aLwin>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
@ -203,12 +247,6 @@
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<SystemViewers>
<Entry>
<Name>System Viewer\UART1</Name>
<WinId>35905</WinId>
</Entry>
</SystemViewers>
</TargetOption>
</Target>
@ -361,7 +399,7 @@
</Group>
<Group>
<GroupName>drivers</GroupName>
<GroupName>drivers\src</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
@ -369,18 +407,210 @@
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>12</FileNumber>
<FileType>5</FileType>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\drivers\api\drvs.h</PathWithFileName>
<FilenameWithoutPath>drvs.h</FilenameWithoutPath>
<PathWithFileName>..\..\..\drivers\src\dma.c</PathWithFileName>
<FilenameWithoutPath>dma.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\src\exti.c</PathWithFileName>
<FilenameWithoutPath>exti.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\src\fshc.c</PathWithFileName>
<FilenameWithoutPath>fshc.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\src\gfsk.c</PathWithFileName>
<FilenameWithoutPath>gfsk.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\src\i2c.c</PathWithFileName>
<FilenameWithoutPath>i2c.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\src\iopad.c</PathWithFileName>
<FilenameWithoutPath>iopad.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\src\iwdt.c</PathWithFileName>
<FilenameWithoutPath>iwdt.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\src\pwm.c</PathWithFileName>
<FilenameWithoutPath>pwm.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\src\rcc.c</PathWithFileName>
<FilenameWithoutPath>rcc.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\src\rco.c</PathWithFileName>
<FilenameWithoutPath>rco.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\src\rtc.c</PathWithFileName>
<FilenameWithoutPath>rtc.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\src\sadc.c</PathWithFileName>
<FilenameWithoutPath>sadc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\drivers\src\spi.c</PathWithFileName>
<FilenameWithoutPath>spi.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\drivers\src\sysdbg.c</PathWithFileName>
<FilenameWithoutPath>sysdbg.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\drivers\src\timer.c</PathWithFileName>
<FilenameWithoutPath>timer.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\drivers\src\trim.c</PathWithFileName>
<FilenameWithoutPath>trim.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\drivers\src\uart.c</PathWithFileName>
<FilenameWithoutPath>uart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>29</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -393,14 +623,34 @@
</Group>
<Group>
<GroupName>debug</GroupName>
<GroupName>drivers</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>14</FileNumber>
<FileNumber>30</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\drivers\api\drvs.h</PathWithFileName>
<FilenameWithoutPath>drvs.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>debug</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -419,8 +669,8 @@
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>15</FileNumber>
<GroupNumber>6</GroupNumber>
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -431,8 +681,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>16</FileNumber>
<GroupNumber>6</GroupNumber>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -443,8 +693,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>17</FileNumber>
<GroupNumber>6</GroupNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -455,8 +705,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>18</FileNumber>
<GroupNumber>6</GroupNumber>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -467,8 +717,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>19</FileNumber>
<GroupNumber>6</GroupNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -479,8 +729,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>20</FileNumber>
<GroupNumber>6</GroupNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -499,8 +749,8 @@
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>21</FileNumber>
<GroupNumber>7</GroupNumber>
<FileNumber>38</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -519,8 +769,8 @@
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>22</FileNumber>
<GroupNumber>8</GroupNumber>
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -531,8 +781,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>23</FileNumber>
<GroupNumber>8</GroupNumber>
<FileNumber>40</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View File

@ -48,7 +48,7 @@
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\output\</OutputDirectory>
<OutputName>uartTest</OutputName>
<OutputName>uartTest.elf</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>1</CreateHexFile>
@ -443,6 +443,101 @@
</File>
</Files>
</Group>
<Group>
<GroupName>drivers\src</GroupName>
<Files>
<File>
<FileName>dma.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\dma.c</FilePath>
</File>
<File>
<FileName>exti.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\exti.c</FilePath>
</File>
<File>
<FileName>fshc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\fshc.c</FilePath>
</File>
<File>
<FileName>gfsk.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\gfsk.c</FilePath>
</File>
<File>
<FileName>i2c.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\i2c.c</FilePath>
</File>
<File>
<FileName>iopad.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\iopad.c</FilePath>
</File>
<File>
<FileName>iwdt.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\iwdt.c</FilePath>
</File>
<File>
<FileName>pwm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\pwm.c</FilePath>
</File>
<File>
<FileName>rcc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\rcc.c</FilePath>
</File>
<File>
<FileName>rco.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\rco.c</FilePath>
</File>
<File>
<FileName>rtc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\rtc.c</FilePath>
</File>
<File>
<FileName>sadc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\sadc.c</FilePath>
</File>
<File>
<FileName>spi.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\spi.c</FilePath>
</File>
<File>
<FileName>sysdbg.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\sysdbg.c</FilePath>
</File>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\timer.c</FilePath>
</File>
<File>
<FileName>trim.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\trim.c</FilePath>
</File>
<File>
<FileName>uart.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\drivers\src\uart.c</FilePath>
</File>
<File>
<FileName>drvs.lib</FileName>
<FileType>4</FileType>
<FilePath>..\..\..\drivers\lib\drvs.lib</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>drivers</GroupName>
<Files>
@ -451,11 +546,6 @@
<FileType>5</FileType>
<FilePath>..\..\..\drivers\api\drvs.h</FilePath>
</File>
<File>
<FileName>drvs.lib</FileName>
<FileType>4</FileType>
<FilePath>..\..\..\drivers\lib\drvs.lib</FilePath>
</File>
</Files>
</Group>
<Group>

View File

@ -60,7 +60,7 @@ static void acc_in_bat_in_sadc_init(void)
// uart_send(UART1_PORT,len,dat);
// uart_send(UART1_PORT,len,dat);
if(3250 <=ACC_val && 3310 >= ACC_val){
if(3000 <=ACC_val && 6 > time){ //&& 3500 >= ACC_val){
break;
}
if(20 < time++){

View File

@ -58,26 +58,34 @@ static tmr_tk_t radar_timer_handler(tmr_id_t id){
}
if(Get_Status(OUT_Door_lock) && !(PAD_Manager_Mode || Get_Status(IN_Manager_Mode))){
if(Get_Status(IN_Back)){//如果是倒车状态
#if (0 ==RADAR_MODE)
// uint8_t data[8]={0x02,0x03,0x01,0x00,0x00,0x01,0x85,0xC5};//读取处理值数据//520ms
uint8_t data[8]={0x02,0x03,0x01,0x01,0x00,0x01,0xD4,0x05};////读取实时值数据//120ms
#elif (1 ==RADAR_MODE)
uint8_t data[8]={0x02,0x03,0x00,0x01,0x00,0x01,0xD5,0xf9};////读取实时值数据//120ms
#endif
Car_Distance =radar_daraframe.Back_data/100;
radar_daraframe.Back_data=0xffff;
uart_send(UART1_PORT,8,data);
}else{
#if (0 ==RADAR_MODE)
// uint8_t data[8]={0x01,0x03,0x01,0x00,0x00,0x01,0x85,0xf6};//读取处理值数据//520ms
uint8_t data[8]={0x01,0x03,0x01,0x01,0x00,0x01,0xD4,0x36};//读取实时值数据//120ms
#elif (1 ==RADAR_MODE)
uint8_t data[8]={0x01,0x03,0x00,0x01,0x00,0x01,0xD5,0xCA};////读取实时值数据//120ms
#endif
Car_Distance =radar_daraframe.Front_data/100;
radar_daraframe.Front_data=0xffff;
uart_send(UART1_PORT,8,data);
}
if(Car_Distance < (Get_Status(IN_Back)?sys_conf_info.AUTO_Brake_Distance_B :sys_conf_info.AUTO_Brake_Distance)){//小于自动刹车距离时
if((0 < Car_Distance) && Car_Distance < (Get_Status(IN_Back)?sys_conf_info.AUTO_Brake_Distance_B :sys_conf_info.AUTO_Brake_Distance)){//小于自动刹车距离时
if(!SYS_AUTO_brake){
Time_Event_Blink(Buzzer_Event,100,100,0xffff,NULL);
}
SYS_AUTO_brake =1;//使能自动刹车
SYS_AUTO_Speed_Cut=1;
}else if(Car_Distance < (Get_Status(IN_Back)?sys_conf_info.AUTO_Speed_Cut_Distance_B :sys_conf_info.AUTO_Speed_Cut_Distance)){//小于自动减速距离时
}else if((0 < Car_Distance) && Car_Distance < (Get_Status(IN_Back)?sys_conf_info.AUTO_Speed_Cut_Distance_B :sys_conf_info.AUTO_Speed_Cut_Distance)){//小于自动减速距离时
if(SYS_AUTO_brake || !SYS_AUTO_Speed_Cut){
Time_Event_Blink(Buzzer_Event,200,500,0xffff,NULL);
}
@ -107,6 +115,10 @@ void app_radar_init(void){
radar_timer_tmr_id = sftmr_start(10, radar_timer_handler);
}
#if (1 ==BLE_ENABLE)
extern uint16_t Front_data;
extern uint16_t Back_data;
#endif
uint8_t radar_buff[10],radar_state;
uint16_t i;
@ -156,8 +168,14 @@ void app_radar_Receive(uint8_t data){
if(crc16 == (((uint16_t)radar_buff[6] << 8 ) | radar_buff[5])){
if(0x01 == radar_buff[0]){
radar_daraframe.Front_data = ((uint16_t)radar_buff[3] << 8 ) | radar_buff[4];
#if (1 ==BLE_ENABLE)
Front_data=radar_daraframe.Front_data;
#endif
}else if(0x02 == radar_buff[0]){
radar_daraframe.Back_data = ((uint16_t)radar_buff[3] << 8 ) | radar_buff[4];
#if (1 ==BLE_ENABLE)
Back_data=radar_daraframe.Back_data;
#endif
}
radar_flag = 1;
}

View File

@ -12,7 +12,7 @@ uint32_t ___WS2812_DIN___ =1<< OUT_GRB_WS2812_DIN;
#define WS2812_DIN_L GPIO_DAT_CLR(___WS2812_DIN___)
BLE_GRB_Data_t WS2812_GRBs={
.len=73,
.len=64,
.GRBs=0x00,
};

View File

@ -6,9 +6,15 @@
#include "app.h"
#include "sftmr.h"
#include "prf_sess.h"
#include "sys_config.h"
void HardFault_Handler(void){
debug("HardFault_Handler\r\n");
NVIC_SystemReset();
}
#define FLASH_INFO_CODE_ADDR (FLASH_BASE + 0x08)
#define OTA_BANK_A_BASE (0x18004000)
#define OTA_BANK_B_BASE (0x18020000)
@ -22,20 +28,21 @@ extern void app_ble_procedure(void);
//************************************************
#define IWDT_WINDOW (32768) //32.768KHz 1S
#define IWDT_WINDOW (2*32768) //32.768KHz 1S
//看门狗配置
void IWDT_IRQHandler(void)
{
iwdt_feed();//喂狗
}
// //看门狗配置
// void IWDT_IRQHandler(void)
// {
// iwdt_feed();//喂狗
// }
static void iwdtInit(void)
{
iwdt_init(IWDT_INTEN_BIT | IWDT_CR_DFLT);
// iwdt_init(IWDT_INTEN_BIT | IWDT_CR_DFLT);
iwdt_init(IWDT_CR_DFLT);
iwdt_conf(IWDT_WINDOW);
NVIC_EnableIRQ(IWDT_IRQn);
// NVIC_EnableIRQ(IWDT_IRQn);
__enable_irq();
}
@ -44,8 +51,9 @@ static void sysInit(void)
{
// Todo config, if need
iwdt_disable();
// rcc_ble_en();
#if (1 ==BLE_ENABLE)
rcc_ble_en();
#endif
rcc_adc_en();
rcc_fshclk_set(FSH_CLK_DPSC42);
@ -54,22 +62,27 @@ static void sysInit(void)
static void devInit(void)
{
// uint16_t rsn = rstrsn();
uint16_t rsn = rstrsn();
// dbgInit();
dbgInit();
// debug("Start(rsn:0x%X)...\r\n", rsn);
#if (1 ==BLE_ENABLE)
// Init BLE App
// app_init(rsn);
app_init(rsn);
#endif
sftmr_init();
iwdtInit();
// rf_pa_set(0x0C);
#if (1 ==BLE_ENABLE)
rf_pa_set(0x0C);
#endif
}
/*
#if (1 ==BLE_ENABLE)
uint16_t Front_data=0;
uint16_t Back_data=0;
#endif
#if (1 ==BLE_ENABLE)
uint8_t str[30]={0,0},str_len=0;
static tmr_tk_t test_timer_handler(tmr_id_t id){
@ -87,12 +100,25 @@ static tmr_tk_t test_timer_handler(tmr_id_t id){
// GRB_WS2812_Write_GRBs(WS2812_GRBs.len ,WS2812_GRBs.GRBs);
// GRB_WS2812_Write_color(BLE_WS2812_GRBs.len,BLE_WS2812_GRBs.GRBs);
#if (1 ==BLE_ENABLE)
str_len=0;
str[str_len++]=0xa5;
str[str_len++]=(Front_data)&0xff;
str[str_len++]=(Front_data>>8)&0xff;
str[str_len++]=(Back_data)&0xff;
str[str_len++]=(Back_data>>8)&0xff;
str[str_len]=0;
for(uint8_t i=1;i<str_len;i++){
str[str_len] +=str[i];
}
str_len++;
str[str_len++]=0x5a;
sess_txd_send(app_env.curidx, str_len, str);
#endif
return 3;
return 5;
}
*/
#endif
uint32_t bank;
@ -157,7 +183,7 @@ int main(void)
uint8_t str[50]={0,0},str_len=0;
str_len =sprintf((char *)str, "HEAD=%#X,M_s=%d,U_s=%d\n Brake=%d,Speed_Cut=%d\n Brake_B=%d,Speed_Cut_B=%d\n",
str_len =sprintf((char *)str, "HEAD=%#X,M_s=%d,U_s=%d\n Brake=%d,Speed_Cut=%d\n Brake_B=%d,Speed_Cut_B=%d\n OKzsxfly",
sys_conf_info.HEAD,
sys_conf_info.M_mode_sLim,
sys_conf_info.U_mode_sLim,
@ -181,19 +207,22 @@ int main(void)
// bootDelayMs(1000);
BAT_Message_Init();
#if (1 ==BLE_ENABLE)
// ADC初始化
// sftmr_start(20, test_timer_handler);
sftmr_start(20, test_timer_handler);
#endif
while(1){
// SoftTimer Polling
sftmr_schedule();
#if (1 ==BLE_ENABLE)
// Schedule Messages & Events
// ble_schedule();
ble_schedule();
#endif
// User's Procedure
// app_ble_procedure();
Control_procedure();
iwdt_feed();//喂狗
}
}

View File

@ -39,7 +39,7 @@ void write_cfg(SYS_CONF_t *sys_config_info_t);
/*****************************速度************************/
// 管理员模式默认速度极限(0-100%)
#define M_DEFAULT_sLim 100
// 管理员模式默认速度极限(0-100%)
// 游客模式默认速度极限(0-100%)
#define U_DEFAULT_sLim 50
@ -50,5 +50,14 @@ void write_cfg(SYS_CONF_t *sys_config_info_t);
#define DEF_AUTO_Speed_Cut_Distance 16
/*****************************BLE************************/
#define BLE_ENABLE 0
/*****************************雷达************************/
#define RADAR_MODE 0 // 0电应普 1FD07-3
#endif