fix-中断

This commit is contained in:
yxming66 2025-12-27 03:30:58 +08:00
parent 9acb2d39d4
commit ef1f6d6642
73 changed files with 20132 additions and 4605 deletions

View File

@ -41,7 +41,7 @@ void MX_FDCAN1_Init(void)
/* USER CODE END FDCAN1_Init 1 */
hfdcan1.Instance = FDCAN1;
hfdcan1.Init.FrameFormat = FDCAN_FRAME_CLASSIC;
hfdcan1.Init.Mode = FDCAN_MODE_NORMAL;
hfdcan1.Init.Mode = FDCAN_MODE_INTERNAL_LOOPBACK;
hfdcan1.Init.AutoRetransmission = ENABLE;
hfdcan1.Init.TransmitPause = DISABLE;
hfdcan1.Init.ProtocolException = ENABLE;
@ -89,7 +89,7 @@ void MX_FDCAN2_Init(void)
/* USER CODE END FDCAN2_Init 1 */
hfdcan2.Instance = FDCAN2;
hfdcan2.Init.FrameFormat = FDCAN_FRAME_FD_BRS;
hfdcan2.Init.Mode = FDCAN_MODE_NORMAL;
hfdcan2.Init.Mode = FDCAN_MODE_INTERNAL_LOOPBACK;
hfdcan2.Init.AutoRetransmission = ENABLE;
hfdcan2.Init.TransmitPause = DISABLE;
hfdcan2.Init.ProtocolException = ENABLE;
@ -114,7 +114,7 @@ void MX_FDCAN2_Init(void)
hfdcan2.Init.TxBuffersNbr = 0;
hfdcan2.Init.TxFifoQueueElmtsNbr = 8;
hfdcan2.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;
hfdcan2.Init.TxElmtSize = FDCAN_DATA_BYTES_8;
hfdcan2.Init.TxElmtSize = FDCAN_DATA_BYTES_64;
if (HAL_FDCAN_Init(&hfdcan2) != HAL_OK)
{
Error_Handler();
@ -137,7 +137,7 @@ void MX_FDCAN3_Init(void)
/* USER CODE END FDCAN3_Init 1 */
hfdcan3.Instance = FDCAN3;
hfdcan3.Init.FrameFormat = FDCAN_FRAME_FD_NO_BRS;
hfdcan3.Init.Mode = FDCAN_MODE_NORMAL;
hfdcan3.Init.Mode = FDCAN_MODE_INTERNAL_LOOPBACK;
hfdcan3.Init.AutoRetransmission = ENABLE;
hfdcan3.Init.TransmitPause = DISABLE;
hfdcan3.Init.ProtocolException = ENABLE;
@ -162,7 +162,7 @@ void MX_FDCAN3_Init(void)
hfdcan3.Init.TxBuffersNbr = 0;
hfdcan3.Init.TxFifoQueueElmtsNbr = 8;
hfdcan3.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;
hfdcan3.Init.TxElmtSize = FDCAN_DATA_BYTES_8;
hfdcan3.Init.TxElmtSize = FDCAN_DATA_BYTES_64;
if (HAL_FDCAN_Init(&hfdcan3) != HAL_OK)
{
Error_Handler();

View File

@ -13,7 +13,8 @@ FDCAN1.DataSyncJumpWidth=5
FDCAN1.DataTimeSeg1=14
FDCAN1.DataTimeSeg2=5
FDCAN1.ExtFiltersNbr=1
FDCAN1.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,ProtocolException,NominalSyncJumpWidth,DataPrescaler,DataSyncJumpWidth,DataTimeSeg1,DataTimeSeg2,NominalPrescaler,NominalTimeSeg1,NominalTimeSeg2,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,StdFiltersNbr,RxFifo0ElmtSize,TxElmtSize,AutoRetransmission,ExtFiltersNbr,TxEventsNbr
FDCAN1.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,ProtocolException,NominalSyncJumpWidth,DataPrescaler,DataSyncJumpWidth,DataTimeSeg1,DataTimeSeg2,NominalPrescaler,NominalTimeSeg1,NominalTimeSeg2,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,StdFiltersNbr,RxFifo0ElmtSize,TxElmtSize,AutoRetransmission,ExtFiltersNbr,TxEventsNbr,TxFifoQueueMode,Mode
FDCAN1.Mode=FDCAN_MODE_INTERNAL_LOOPBACK
FDCAN1.NominalPrescaler=5
FDCAN1.NominalSyncJumpWidth=5
FDCAN1.NominalTimeSeg1=14
@ -25,6 +26,7 @@ FDCAN1.StdFiltersNbr=1
FDCAN1.TxElmtSize=FDCAN_DATA_BYTES_64
FDCAN1.TxEventsNbr=8
FDCAN1.TxFifoQueueElmtsNbr=8
FDCAN1.TxFifoQueueMode=FDCAN_TX_FIFO_OPERATION
FDCAN2.AutoRetransmission=ENABLE
FDCAN2.CalculateBaudRateNominal=1000000
FDCAN2.CalculateTimeBitNominal=1000
@ -35,8 +37,9 @@ FDCAN2.DataTimeSeg1=14
FDCAN2.DataTimeSeg2=5
FDCAN2.ExtFiltersNbr=1
FDCAN2.FrameFormat=FDCAN_FRAME_FD_BRS
FDCAN2.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,FrameFormat,AutoRetransmission,StdFiltersNbr,ExtFiltersNbr,RxFifo0ElmtsNbr,NominalSyncJumpWidth,DataPrescaler,DataSyncJumpWidth,DataTimeSeg1,DataTimeSeg2,MessageRAMOffset,RxFifo1ElmtsNbr,RxFifo1ElmtSize,TxFifoQueueElmtsNbr,NominalPrescaler,NominalTimeSeg1,NominalTimeSeg2,ProtocolException,TxEventsNbr
FDCAN2.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,FrameFormat,AutoRetransmission,StdFiltersNbr,ExtFiltersNbr,RxFifo0ElmtsNbr,NominalSyncJumpWidth,DataPrescaler,DataSyncJumpWidth,DataTimeSeg1,DataTimeSeg2,MessageRAMOffset,RxFifo1ElmtsNbr,RxFifo1ElmtSize,TxFifoQueueElmtsNbr,NominalPrescaler,NominalTimeSeg1,NominalTimeSeg2,ProtocolException,TxEventsNbr,TxElmtSize,Mode
FDCAN2.MessageRAMOffset=831
FDCAN2.Mode=FDCAN_MODE_INTERNAL_LOOPBACK
FDCAN2.NominalPrescaler=5
FDCAN2.NominalSyncJumpWidth=5
FDCAN2.NominalTimeSeg1=14
@ -46,6 +49,7 @@ FDCAN2.RxFifo0ElmtsNbr=0
FDCAN2.RxFifo1ElmtSize=FDCAN_DATA_BYTES_64
FDCAN2.RxFifo1ElmtsNbr=8
FDCAN2.StdFiltersNbr=1
FDCAN2.TxElmtSize=FDCAN_DATA_BYTES_64
FDCAN2.TxEventsNbr=8
FDCAN2.TxFifoQueueElmtsNbr=8
FDCAN3.AutoRetransmission=ENABLE
@ -57,8 +61,9 @@ FDCAN3.DataSyncJumpWidth=5
FDCAN3.DataTimeSeg1=14
FDCAN3.DataTimeSeg2=5
FDCAN3.FrameFormat=FDCAN_FRAME_FD_NO_BRS
FDCAN3.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,MessageRAMOffset,FrameFormat,AutoRetransmission,ProtocolException,NominalSyncJumpWidth,DataPrescaler,DataSyncJumpWidth,DataTimeSeg1,DataTimeSeg2,StdFiltersNbr,RxFifo1ElmtsNbr,RxFifo1ElmtSize,TxFifoQueueElmtsNbr,NominalPrescaler,NominalTimeSeg1,NominalTimeSeg2,TxEventsNbr
FDCAN3.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,MessageRAMOffset,FrameFormat,AutoRetransmission,ProtocolException,NominalSyncJumpWidth,DataPrescaler,DataSyncJumpWidth,DataTimeSeg1,DataTimeSeg2,StdFiltersNbr,RxFifo1ElmtsNbr,RxFifo1ElmtSize,TxFifoQueueElmtsNbr,NominalPrescaler,NominalTimeSeg1,NominalTimeSeg2,TxEventsNbr,TxElmtSize,Mode
FDCAN3.MessageRAMOffset=1662
FDCAN3.Mode=FDCAN_MODE_INTERNAL_LOOPBACK
FDCAN3.NominalPrescaler=5
FDCAN3.NominalSyncJumpWidth=5
FDCAN3.NominalTimeSeg1=14
@ -67,6 +72,7 @@ FDCAN3.ProtocolException=ENABLE
FDCAN3.RxFifo1ElmtSize=FDCAN_DATA_BYTES_64
FDCAN3.RxFifo1ElmtsNbr=8
FDCAN3.StdFiltersNbr=1
FDCAN3.TxElmtSize=FDCAN_DATA_BYTES_64
FDCAN3.TxEventsNbr=8
FDCAN3.TxFifoQueueElmtsNbr=8
FREERTOS.IPParameters=Tasks01

File diff suppressed because one or more lines are too long

View File

@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>4</nTsel>
<nTsel>6</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
@ -114,9 +114,14 @@
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile></tIfile>
<pMon>Segger\JL2CM3.dll</pMon>
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name>(105=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
@ -145,16 +150,16 @@
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U-O142 -O2254 -SF5000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(6BA02477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32H72x-73x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32H723VGTx$CMSIS\Flash\STM32H72x-73x_1024.FLM)</Name>
<Name>-UE1007200D0D2139393740544 -O2254 -SF5000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(6BA02477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32H72x-73x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32H723VGTx$CMSIS\Flash\STM32H72x-73x_1024.FLM)</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>214</LineNumber>
<LineNumber>217</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134224464</Address>
<Address>134224716</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
@ -163,55 +168,7 @@
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\User\bsp\fdcan.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\FDCAN\../User/bsp/fdcan.c\214</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>134</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>..\User\bsp\fdcan.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>155</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>..\User\bsp\fdcan.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>3</Number>
<Type>0</Type>
<LineNumber>184</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>..\User\bsp\fdcan.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
<Expression>\\FDCAN\../User/bsp/fdcan.c\217</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
@ -233,7 +190,7 @@
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>fifolevel</ItemText>
<ItemText>fifolevel,0x0A</ItemText>
</Ww>
</WatchWindow1>
<Tracepoint>
@ -880,6 +837,30 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>46</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\bsp\bsp_can.c</PathWithFileName>
<FilenameWithoutPath>bsp_can.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>47</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\bsp\bsp_can.h</PathWithFileName>
<FilenameWithoutPath>bsp_can.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -890,7 +871,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>46</FileNumber>
<FileNumber>48</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -918,7 +899,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>47</FileNumber>
<FileNumber>49</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -930,7 +911,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>48</FileNumber>
<FileNumber>50</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -942,7 +923,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>49</FileNumber>
<FileNumber>51</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -954,7 +935,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>50</FileNumber>
<FileNumber>52</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -966,7 +947,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>51</FileNumber>
<FileNumber>53</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -978,7 +959,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>52</FileNumber>
<FileNumber>54</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -990,7 +971,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>53</FileNumber>
<FileNumber>55</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1002,7 +983,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>54</FileNumber>
<FileNumber>56</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1022,7 +1003,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>55</FileNumber>
<FileNumber>57</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1034,7 +1015,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>56</FileNumber>
<FileNumber>58</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1046,7 +1027,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>57</FileNumber>
<FileNumber>59</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1058,7 +1039,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>58</FileNumber>
<FileNumber>60</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View File

@ -1263,6 +1263,16 @@
<FileType>5</FileType>
<FilePath>..\User\bsp\time.h</FilePath>
</File>
<File>
<FileName>bsp_can.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\bsp\bsp_can.c</FilePath>
</File>
<File>
<FileName>bsp_can.h</FileName>
<FileType>5</FileType>
<FilePath>..\User\bsp\bsp_can.h</FilePath>
</File>
</Files>
</Group>
<Group>

Binary file not shown.

View File

@ -17,23 +17,17 @@ Library Manager: ArmAr.exe V5.06 update 7 (build 960)
Hex Converter: FromElf.exe V5.06 update 7 (build 960)
CPU DLL: SARMCM3.DLL V5.34.0.0
Dialog DLL: DCM.DLL V1.17.3.0
Target DLL: Segger\JL2CM3.dll V2.99.38.0
Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.8.0
Dialog DLL: TCM.DLL V1.48.0.0
<h2>Project:</h2>
D:\STM32Projects_HAL\board-H7\FDCAN\MDK-ARM\FDCAN.uvprojx
Project File Date: 12/26/2025
Project File Date: 12/27/2025
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\cangming\ARM\ARMCC\Bin'
Build target 'FDCAN'
Note: source file '..\User\bsp\fdcan.c' - object file renamed from 'FDCAN\fdcan.o' to 'FDCAN\fdcan_1.o'.
assembling startup_stm32h723xx.s...
compiling fdcan.c...
compiling stm32h7xx_it.c...
linking...
Program Size: Code=23600 RO-data=996 RW-data=176 ZI-data=36776
FromELF: creating hex file...
"FDCAN\FDCAN.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2>
@ -57,7 +51,7 @@ Package Vendor: Keil
* Component: ARM::CMSIS:CORE:5.4.0
Include file: CMSIS\Core\Include\tz_context.h
Build Time Elapsed: 00:00:05
Build Time Elapsed: 00:00:01
</pre>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -40,6 +40,7 @@
"fdcan\fdcan_1.o"
"fdcan\mm.o"
"fdcan\time.o"
"fdcan\bsp_can.o"
"fdcan\crc16.o"
"fdcan\filter.o"
"fdcan\pid.o"

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
Dependencies for Project 'FDCAN', Target 'FDCAN': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (startup_stm32h723xx.s)(0x694EA5AF)(--cpu Cortex-M7.fp.dp -g --apcs=interwork -I ../Drivers/CMSIS/Include -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32H723xx SETA 1" --pd "_RTE_ SETA 1" --list startup_stm32h723xx.lst --xref -o fdcan\startup_stm32h723xx.o --depend fdcan\startup_stm32h723xx.d)
F (startup_stm32h723xx.s)(0x694ED3B7)(--cpu Cortex-M7.fp.dp -g --apcs=interwork -I ../Drivers/CMSIS/Include -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32H723xx SETA 1" --pd "_RTE_ SETA 1" --list startup_stm32h723xx.lst --xref -o fdcan\startup_stm32h723xx.o --depend fdcan\startup_stm32h723xx.d)
F (../Core/Src/main.c)(0x694E2F79)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\main.o --omf_browse fdcan\main.crf --depend fdcan\main.d)
I (../Core/Inc/main.h)(0x694E28D6)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h)(0x6944350B)
@ -135,7 +135,7 @@ I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h)(0x6944350B)
I (../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os.h)(0x694434DA)
I (../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.h)(0x694434DA)
I (../User/task/user_task.h)(0x693967A8)
F (../Core/Src/fdcan.c)(0x694EA5AE)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\fdcan.o --omf_browse fdcan\fdcan.crf --depend fdcan\fdcan.d)
F (../Core/Src/fdcan.c)(0x694ED3B6)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\fdcan.o --omf_browse fdcan\fdcan.crf --depend fdcan\fdcan.d)
I (../Core/Inc/fdcan.h)(0x69469E17)
I (../Core/Inc/main.h)(0x694E28D6)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h)(0x6944350B)
@ -1158,8 +1158,8 @@ I (../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h)(0x694434DA
I (../Middlewares/Third_Party/FreeRTOS/Source/include/task.h)(0x694434DA)
I (../Middlewares/Third_Party/FreeRTOS/Source/include/list.h)(0x694434DA)
F (..\User\bsp\bsp.h)(0x694E34A2)()
F (..\User\bsp\fdcan.c)(0x694EA3AF)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\fdcan_1.o --omf_browse fdcan\fdcan_1.crf --depend fdcan\fdcan_1.d)
I (..\User\bsp\fdcan.h)(0x694EA3E9)
F (..\User\bsp\fdcan.c)(0x694EDF57)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\fdcan_1.o --omf_browse fdcan\fdcan_1.crf --depend fdcan\fdcan_1.d)
I (..\User\bsp\fdcan.h)(0x694ED994)
I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2)
I (../User/bsp/bsp.h)(0x694E34A2)
@ -1211,7 +1211,7 @@ I (../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.h)(0x69443
I (../Core/Inc/fdcan.h)(0x69469E17)
I (../Core/Inc/main.h)(0x694E28D6)
I (D:\cangming\ARM\ARMCC\include\string.h)(0x5E8E3CC2)
F (..\User\bsp\fdcan.h)(0x694EA3E9)()
F (..\User\bsp\fdcan.h)(0x694ED994)()
F (..\User\bsp\mm.c)(0x690DC361)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\mm.o --omf_browse fdcan\mm.crf --depend fdcan\mm.d)
I (..\User\bsp/mm.h)(0x690DC361)
I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2)
@ -1273,6 +1273,47 @@ I (../Core/Inc/main.h)(0x694E28D6)
I (../Middlewares/Third_Party/FreeRTOS/Source/include/task.h)(0x694434DA)
I (../Middlewares/Third_Party/FreeRTOS/Source/include/list.h)(0x694434DA)
F (..\User\bsp\time.h)(0x690DC361)()
F (..\User\bsp\bsp_can.c)(0x694ECC80)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\bsp_can.o --omf_browse fdcan\bsp_can.crf --depend fdcan\bsp_can.d)
I (..\User\bsp\bsp_can.h)(0x694EC4AC)
I (..\User\bsp\bsp.h)(0x694E34A2)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h)(0x6944350B)
I (../Core/Inc/stm32h7xx_hal_conf.h)(0x6946871A)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h)(0x6944350B)
I (../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h)(0x6944350B)
I (../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h723xx.h)(0x6944350B)
I (../Drivers/CMSIS/Include/core_cm7.h)(0x694434DE)
I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (../Drivers/CMSIS/Include/cmsis_version.h)(0x694434DE)
I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x694434DE)
I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x694434DE)
I (../Drivers/CMSIS/Include/mpu_armv7.h)(0x694434DE)
I (../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x6944350B)
I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2)
I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_fdcan.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h)(0x6944350B)
I (../Core/Inc/main.h)(0x694E28D6)
I (D:\cangming\ARM\ARMCC\include\string.h)(0x5E8E3CC2)
I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2)
F (..\User\bsp\bsp_can.h)(0x694EC4AC)()
F (..\User\device\device.h)(0x6932C3FE)()
F (..\User\component\crc16.c)(0x6932C3FE)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\crc16.o --omf_browse fdcan\crc16.crf --depend fdcan\crc16.d)
I (..\User\component\crc16.h)(0x6932C3FE)
@ -1311,7 +1352,7 @@ I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2)
I (D:\cangming\ARM\ARMCC\include\string.h)(0x5E8E3CC2)
F (..\User\component\user_math.h)(0x690DD4C7)()
F (..\User\task\blink.c)(0x694EA4C4)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\blink.o --omf_browse fdcan\blink.crf --depend fdcan\blink.d)
F (..\User\task\blink.c)(0x694ED995)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\blink.o --omf_browse fdcan\blink.crf --depend fdcan\blink.d)
I (../User/task/user_task.h)(0x693967A8)
I (../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.h)(0x694434DA)
I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
@ -1358,12 +1399,13 @@ I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h)(0x6944350B)
I (../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h)(0x6944350B)
I (../User/bsp/fdcan.h)(0x694EA3E9)
I (../User/bsp/fdcan.h)(0x694ED994)
I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2)
I (../User/bsp/mm.h)(0x690DC361)
I (../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os.h)(0x694434DA)
I (../Core/Inc/fdcan.h)(0x69469E17)
I (../Core/Inc/main.h)(0x694E28D6)
I (../User/bsp/bsp_can.h)(0x694EC4AC)
F (..\User\task\init.c)(0x694E4396)(--c99 --gnu -c --cpu Cortex-M7.fp.dp -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc -I ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User -I.\RTE\_FDCAN -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32H723xx -D_RTE_ -DUSE_PWR_LDO_SUPPLY -DUSE_HAL_DRIVER -DSTM32H723xx -o fdcan\init.o --omf_browse fdcan\init.crf --depend fdcan\init.d)
I (..\User\task/user_task.h)(0x693967A8)
I (../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.h)(0x694434DA)

Binary file not shown.

View File

@ -52,3 +52,4 @@ fdcan\blink.o: ../User/bsp/mm.h
fdcan\blink.o: ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os.h
fdcan\blink.o: ../Core/Inc/fdcan.h
fdcan\blink.o: ../Core/Inc/main.h
fdcan\blink.o: ../User/bsp/bsp_can.h

Binary file not shown.

BIN
MDK-ARM/FDCAN/bsp_can.crf Normal file

Binary file not shown.

41
MDK-ARM/FDCAN/bsp_can.d Normal file
View File

@ -0,0 +1,41 @@
fdcan\bsp_can.o: ..\User\bsp\bsp_can.c
fdcan\bsp_can.o: ..\User\bsp\bsp_can.h
fdcan\bsp_can.o: ..\User\bsp\bsp.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h
fdcan\bsp_can.o: ../Core/Inc/stm32h7xx_hal_conf.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h
fdcan\bsp_can.o: ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h
fdcan\bsp_can.o: ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h723xx.h
fdcan\bsp_can.o: ../Drivers/CMSIS/Include/core_cm7.h
fdcan\bsp_can.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h
fdcan\bsp_can.o: ../Drivers/CMSIS/Include/cmsis_version.h
fdcan\bsp_can.o: ../Drivers/CMSIS/Include/cmsis_compiler.h
fdcan\bsp_can.o: ../Drivers/CMSIS/Include/cmsis_armcc.h
fdcan\bsp_can.o: ../Drivers/CMSIS/Include/mpu_armv7.h
fdcan\bsp_can.o: ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h
fdcan\bsp_can.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h
fdcan\bsp_can.o: D:\cangming\ARM\ARMCC\Bin\..\include\math.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_fdcan.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h
fdcan\bsp_can.o: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h
fdcan\bsp_can.o: ../Core/Inc/main.h
fdcan\bsp_can.o: D:\cangming\ARM\ARMCC\Bin\..\include\string.h
fdcan\bsp_can.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h

BIN
MDK-ARM/FDCAN/bsp_can.o Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

53
User/bsp/bap_can.h Normal file
View File

@ -0,0 +1,53 @@
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "bsp.h"
typedef enum {
BSP_CAN_1,
BSP_CAN_2,
BSP_CAN_NUM,
BSP_CAN_ERR,
} bsp_can_t;
typedef enum {
CAN_RX_MSG_CALLBACK,
CAN_TX_CPLT_CALLBACK,
CANFD_RX_MSG_CALLBACK,
CANFD_TX_CPLT_CALLBACK,
BSP_CAN_CB_NUM
} bsp_can_callback_t;
typedef enum {
CAN_FORMAT_STD,
CAN_FORMAT_EXT,
} bsp_can_format_t;
typedef struct {
uint8_t data[8];
} bsp_can_data_t;
typedef struct {
size_t size;
uint8_t *data;
} bsp_canfd_data_t;
void bsp_can_init(void);
int8_t bsp_can_register_callback(
bsp_can_t can, bsp_can_callback_t type,
void (*callback)(bsp_can_t can, uint32_t id, uint8_t *data, void *arg),
void *callback_arg);
int8_t bsp_can_trans_packet(bsp_can_t can, bsp_can_format_t format,
uint32_t id, uint8_t *data);
int8_t bsp_canfd_trans_packet(bsp_can_t can, bsp_can_format_t format,
uint32_t id, uint8_t *data, size_t size);
int8_t bsp_can_get_msg(bsp_can_t can, uint8_t *data, uint32_t *index);
#ifdef __cplusplus
}
#endif

234
User/bsp/bsp_can.c Normal file
View File

@ -0,0 +1,234 @@
#include "bsp_can.h"
#include "main.h"
#include <string.h>
#include "bsp/bsp.h"
#include <stdint.h>
#include <stdbool.h>
typedef struct {
FDCAN_RxHeaderTypeDef header;
uint8_t data[64];
} can_raw_rx_t;
typedef struct {
FDCAN_HandleTypeDef header;
uint8_t data[8];
} can_raw_tx_t;
typedef struct {
void (*fn)(bsp_can_t can, uint32_t id, uint8_t *data, void *arg);
void *arg;
} can_callback_t;
extern FDCAN_HandleTypeDef hfdcan1;
extern FDCAN_HandleTypeDef hfdcan2;
static can_callback_t callback_list[BSP_CAN_NUM][BSP_CAN_CB_NUM];
static bool bsp_can_initd = false;
static can_raw_rx_t rx_buff[BSP_CAN_NUM];
FDCAN_HandleTypeDef *bsp_can_get_handle(bsp_can_t can) {
switch (can) {
case BSP_CAN_1:
return &hfdcan1;
case BSP_CAN_2:
return &hfdcan2;
default:
return NULL;
}
}
static bsp_can_t can_get(FDCAN_HandleTypeDef *hcan) {
if (hcan->Instance == FDCAN1) {
return BSP_CAN_1;
} else if (hcan->Instance == FDCAN2) {
return BSP_CAN_2;
} else {
return BSP_CAN_ERR;
}
}
void bsp_can_init(void) {
FDCAN_FilterTypeDef can_filter = {0};
can_filter.IdType = FDCAN_STANDARD_ID;
can_filter.FilterIndex = 0;
can_filter.FilterType = FDCAN_FILTER_MASK;
can_filter.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
can_filter.FilterID1 = 0x0000;
can_filter.FilterID2 = 0x0000;
if (HAL_FDCAN_ConfigFilter(&hfdcan1, &can_filter) != HAL_OK) {
// XB_ASSERT(false);
}
can_filter.IdType = FDCAN_EXTENDED_ID;
can_filter.FilterIndex = 1;
can_filter.FilterType = FDCAN_FILTER_MASK;
can_filter.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
can_filter.FilterID1 = 0x0000;
can_filter.FilterID2 = 0x0000;
if (HAL_FDCAN_ConfigFilter(&hfdcan1, &can_filter) != HAL_OK) {
// XB_ASSERT(false);
}
can_filter.IdType = FDCAN_STANDARD_ID;
can_filter.FilterIndex = 2;
can_filter.FilterType = FDCAN_FILTER_MASK;
can_filter.FilterConfig = FDCAN_FILTER_TO_RXFIFO1;
can_filter.FilterID1 = 0x0000;
can_filter.FilterID2 = 0x0000;
if (HAL_FDCAN_ConfigFilter(&hfdcan2, &can_filter) != HAL_OK) {
// XB_ASSERT(false);
}
can_filter.IdType = FDCAN_EXTENDED_ID;
can_filter.FilterIndex = 3;
can_filter.FilterType = FDCAN_FILTER_MASK;
can_filter.FilterConfig = FDCAN_FILTER_TO_RXFIFO1;
can_filter.FilterID1 = 0x0000;
can_filter.FilterID2 = 0x0000;
if (HAL_FDCAN_ConfigFilter(&hfdcan2, &can_filter) != HAL_OK) {
// XB_ASSERT(false);
}
HAL_FDCAN_Start(&hfdcan1); //开启FDCAN
HAL_FDCAN_Start(&hfdcan2); //开启FDCAN
HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0);
HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_TX_FIFO_EMPTY, 0);
HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO1_NEW_MESSAGE, 0);
HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_TX_FIFO_EMPTY, 0);
bsp_can_initd = true;
}
static const uint8_t DLCtoBytes[] = {0, 1, 2, 3, 4, 5, 6, 7,
8, 12, 16, 20, 24, 32, 48, 64};
static void can_rx_cb_fn(bsp_can_t can, uint32_t fifo) {
while (HAL_FDCAN_GetRxMessage(bsp_can_get_handle(can), fifo,
&rx_buff[can].header,
rx_buff[can].data) == HAL_OK) {
if (rx_buff[can].header.FDFormat == FDCAN_CLASSIC_CAN) {
if (callback_list[can][CAN_RX_MSG_CALLBACK].fn) {
callback_list[can][CAN_RX_MSG_CALLBACK].fn(
can, rx_buff[can].header.Identifier, rx_buff[can].data,
callback_list[can][CAN_RX_MSG_CALLBACK].arg);
}
} else {
if (callback_list[can][CANFD_RX_MSG_CALLBACK].fn) {
bsp_canfd_data_t data = {
.data = rx_buff[can].data,
.size = DLCtoBytes[rx_buff[can].header.DataLength >> 16U]};
callback_list[can][CANFD_RX_MSG_CALLBACK].fn(
can, rx_buff[can].header.Identifier, (uint8_t *)&data,
callback_list[can][CANFD_RX_MSG_CALLBACK].arg);
}
}
}
}
// void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hcan, uint32_t RxFifo0ITs) {
// (void)RxFifo0ITs;
// can_rx_cb_fn(can_get(hcan), FDCAN_RX_FIFO0);
// }
// void HAL_FDCAN_RxFifo1Callback(FDCAN_HandleTypeDef *hcan, uint32_t RxFifo1ITs) {
// (void)RxFifo1ITs;
// can_rx_cb_fn(can_get(hcan), FDCAN_RX_FIFO1);
// }
int8_t bsp_can_register_callback(
bsp_can_t can, bsp_can_callback_t type,
void (*callback)(bsp_can_t can, uint32_t id, uint8_t *data, void *arg),
void *callback_arg) {
assert_param(callback);
assert_param(type != BSP_CAN_CB_NUM);
callback_list[can][type].fn = callback;
callback_list[can][type].arg = callback_arg;
return BSP_OK;
}
int8_t bsp_can_trans_packet(bsp_can_t can, bsp_can_format_t format,
uint32_t id, uint8_t *data) {
FDCAN_TxHeaderTypeDef header;
header.Identifier = id;
if (format == CAN_FORMAT_STD) {
header.IdType = FDCAN_STANDARD_ID;
} else {
header.IdType = FDCAN_EXTENDED_ID;
}
header.TxFrameType = FDCAN_DATA_FRAME;
header.DataLength = FDCAN_DLC_BYTES_8;
header.ErrorStateIndicator = FDCAN_ESI_ACTIVE;
header.BitRateSwitch = FDCAN_BRS_OFF;
header.FDFormat = FDCAN_CLASSIC_CAN;
header.TxEventFifoControl = FDCAN_STORE_TX_EVENTS;
header.MessageMarker = 0x01;
while ((bsp_can_get_handle(can)->Instance->TXFQS & FDCAN_TXFQS_TFQF) != 0U) {
__NOP();
}
return HAL_FDCAN_AddMessageToTxFifoQ(bsp_can_get_handle(can), &header,
data) == HAL_OK
? BSP_OK
: BSP_ERR;
}
static const uint32_t FDCAN_PACK_LEN_MAP[16] = {
FDCAN_DLC_BYTES_0, FDCAN_DLC_BYTES_1, FDCAN_DLC_BYTES_2,
FDCAN_DLC_BYTES_3, FDCAN_DLC_BYTES_4, FDCAN_DLC_BYTES_5,
FDCAN_DLC_BYTES_6, FDCAN_DLC_BYTES_7, FDCAN_DLC_BYTES_8,
FDCAN_DLC_BYTES_12, FDCAN_DLC_BYTES_16, FDCAN_DLC_BYTES_20,
FDCAN_DLC_BYTES_24, FDCAN_DLC_BYTES_32, FDCAN_DLC_BYTES_48,
FDCAN_DLC_BYTES_64,
};
int8_t bsp_canfd_trans_packet(bsp_can_t can, bsp_can_format_t format,
uint32_t id, uint8_t *data, size_t size) {
FDCAN_TxHeaderTypeDef header;
// XB_ASSERT(size <= 64);
header.Identifier = id;
if (format == CAN_FORMAT_STD) {
header.IdType = FDCAN_STANDARD_ID;
} else {
header.IdType = FDCAN_EXTENDED_ID;
}
header.TxFrameType = FDCAN_DATA_FRAME;
if (size <= 8) {
header.DataLength = FDCAN_PACK_LEN_MAP[size];
} else if (size <= 24) {
header.DataLength = FDCAN_PACK_LEN_MAP[(size - 9) / 4 + 1 + 8];
} else if (size < 32) {
header.DataLength = FDCAN_DLC_BYTES_32;
} else if (size < 48) {
header.DataLength = FDCAN_DLC_BYTES_48;
} else {
header.DataLength = FDCAN_DLC_BYTES_64;
}
header.ErrorStateIndicator = FDCAN_ESI_ACTIVE;
header.BitRateSwitch = FDCAN_BRS_OFF;
header.FDFormat = FDCAN_FD_CAN;
header.TxEventFifoControl = FDCAN_STORE_TX_EVENTS;
header.MessageMarker = 0x01;
while ((bsp_can_get_handle(can)->Instance->TXFQS & FDCAN_TXFQS_TFQF) != 0U) {
__NOP();
}
return HAL_FDCAN_AddMessageToTxFifoQ(bsp_can_get_handle(can), &header,
data) == HAL_OK
? BSP_OK
: BSP_ERR;
}

53
User/bsp/bsp_can.h Normal file
View File

@ -0,0 +1,53 @@
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "bsp.h"
typedef enum {
BSP_CAN_1,
BSP_CAN_2,
BSP_CAN_NUM,
BSP_CAN_ERR,
} bsp_can_t;
typedef enum {
CAN_RX_MSG_CALLBACK,
CAN_TX_CPLT_CALLBACK,
CANFD_RX_MSG_CALLBACK,
CANFD_TX_CPLT_CALLBACK,
BSP_CAN_CB_NUM
} bsp_can_callback_t;
typedef enum {
CAN_FORMAT_STD,
CAN_FORMAT_EXT,
} bsp_can_format_t;
typedef struct {
uint8_t data[8];
} bsp_can_data_t;
typedef struct {
size_t size;
uint8_t *data;
} bsp_canfd_data_t;
void bsp_can_init(void);
int8_t bsp_can_register_callback(
bsp_can_t can, bsp_can_callback_t type,
void (*callback)(bsp_can_t can, uint32_t id, uint8_t *data, void *arg),
void *callback_arg);
int8_t bsp_can_trans_packet(bsp_can_t can, bsp_can_format_t format,
uint32_t id, uint8_t *data);
int8_t bsp_canfd_trans_packet(bsp_can_t can, bsp_can_format_t format,
uint32_t id, uint8_t *data, size_t size);
int8_t bsp_can_get_msg(bsp_can_t can, uint8_t *data, uint32_t *index);
#ifdef __cplusplus
}
#endif

View File

@ -137,13 +137,16 @@ static bool BSP_FDCAN_TxQueueIsEmpty(BSP_FDCAN_t fdcan) {
BSP_FDCAN_t fdcan = (BSP_FDCAN_t)i;
FDCAN_HandleTypeDef *hfdcan = BSP_FDCAN_GetHandle(fdcan);
if (hfdcan == NULL) continue;
// 消费所有 TX EVENT FIFO 事件,防止堵塞
FDCAN_TxEventFifoTypeDef tx_event;
while (HAL_FDCAN_GetTxEvent(hfdcan, &tx_event) == HAL_OK) {
// 可在此统计 MessageMarker、ID、时间戳等
}
// 续写软件队列到硬件 FIFO
BSP_FDCAN_TxMessage_t msg;
/* 尝试从队列发送直到邮箱/ FIFO 满 */
while (!BSP_FDCAN_TxQueueIsEmpty(fdcan)) {
/* 此处使用 HAL 接口判断是否可发送 — 不同 MCU HAL 名称可能不同 */
if (HAL_FDCAN_GetTxFifoFreeLevel(hfdcan) == 0) break;
if (!BSP_FDCAN_TxQueuePop(fdcan, &msg)) break;
/* 发送消息 - 使用 HAL_FDCAN_AddMessageToTxFifoQ 或相应 API */
HAL_StatusTypeDef res = HAL_FDCAN_AddMessageToTxFifoQ(hfdcan, &msg.header, msg.data);
if (res != HAL_OK) {
break;
@ -169,7 +172,7 @@ static void BSP_FDCAN_RxFifo0Callback(void) {
msg.frame_type = frame_type;
msg.original_id = original_id;
msg.parsed_id = parsed_id;
msg.dlc = rx_header.DataLength / 8;
msg.dlc = rx_header.DataLength;
if (msg.dlc > BSP_FDCAN_MAX_DLC) msg.dlc = BSP_FDCAN_MAX_DLC;
memcpy(msg.data, rx_data, msg.dlc);
osMessageQueuePut(queue, &msg, 0, 0);
@ -198,7 +201,7 @@ static void BSP_FDCAN_RxFifo1Callback(void) {
msg.frame_type = frame_type;
msg.original_id = original_id;
msg.parsed_id = parsed_id;
msg.dlc = rx_header.DataLength / 8;
msg.dlc = rx_header.DataLength;
if (msg.dlc > BSP_FDCAN_MAX_DLC) msg.dlc = BSP_FDCAN_MAX_DLC;
memcpy(msg.data, rx_data, msg.dlc);
osMessageQueuePut(queue, &msg, 0, 0);
@ -326,10 +329,30 @@ int8_t BSP_FDCAN_Init(void) {
sFilterConfig.FilterID2 = 0x000;
sFilterConfig.RxBufferIndex = 0;
HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig);
HAL_FDCAN_ConfigGlobalFilter(&hfdcan1,FDCAN_REJECT, FDCAN_REJECT, DISABLE, DISABLE);
HAL_FDCAN_ConfigGlobalFilter(&hfdcan1,FDCAN_REJECT, FDCAN_REJECT, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
sFilterConfig.FilterIndex = 1;
sFilterConfig.IdType = FDCAN_STANDARD_ID;
sFilterConfig.FilterType = FDCAN_FILTER_MASK;
sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
sFilterConfig.FilterID1 = 0x000;
sFilterConfig.FilterID2 = 0x000;
sFilterConfig.RxBufferIndex = 0;
HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig);
HAL_FDCAN_ConfigGlobalFilter(&hfdcan1,FDCAN_REJECT, FDCAN_REJECT, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
/* 配置 FDCAN2 过滤器 */
/* 索引0;标准ID;掩码模式;存入 FIFO 1普通优先级;不过滤; */
sFilterConfig.FilterIndex = 0;
sFilterConfig.FilterIndex = 2;
sFilterConfig.IdType = FDCAN_STANDARD_ID;
sFilterConfig.FilterType = FDCAN_FILTER_MASK;
sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO1;
sFilterConfig.FilterID1 = 0x000;
sFilterConfig.FilterID2 = 0x000;
sFilterConfig.RxBufferIndex = 0;
HAL_FDCAN_ConfigFilter(&hfdcan2, &sFilterConfig);
HAL_FDCAN_ConfigGlobalFilter(&hfdcan2,FDCAN_REJECT, FDCAN_REJECT, DISABLE, DISABLE);
sFilterConfig.FilterIndex = 3;
sFilterConfig.IdType = FDCAN_STANDARD_ID;
sFilterConfig.FilterType = FDCAN_FILTER_MASK;
sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO1;
@ -340,7 +363,7 @@ int8_t BSP_FDCAN_Init(void) {
HAL_FDCAN_ConfigGlobalFilter(&hfdcan2,FDCAN_REJECT, FDCAN_REJECT, DISABLE, DISABLE);
/* 配置 FDCAN3 过滤器 */
/* 索引0;标准ID;掩码模式;存入 FIFO 1普通优先级;不过滤; */
sFilterConfig.FilterIndex = 0;
sFilterConfig.FilterIndex = 4;
sFilterConfig.IdType = FDCAN_STANDARD_ID;
sFilterConfig.FilterType = FDCAN_FILTER_MASK;
sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO1;
@ -350,6 +373,23 @@ int8_t BSP_FDCAN_Init(void) {
HAL_FDCAN_ConfigFilter(&hfdcan3, &sFilterConfig);
HAL_FDCAN_ConfigGlobalFilter(&hfdcan3,FDCAN_REJECT, FDCAN_REJECT, DISABLE, DISABLE);
sFilterConfig.FilterIndex = 5;
sFilterConfig.IdType = FDCAN_STANDARD_ID;
sFilterConfig.FilterType = FDCAN_FILTER_MASK;
sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO1;
sFilterConfig.FilterID1 = 0x000;
sFilterConfig.FilterID2 = 0x000;
sFilterConfig.RxBufferIndex = 0;
HAL_FDCAN_ConfigFilter(&hfdcan3, &sFilterConfig);
HAL_FDCAN_ConfigGlobalFilter(&hfdcan3,FDCAN_REJECT, FDCAN_REJECT, DISABLE, DISABLE);
// HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0);
// HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_TX_FIFO_EMPTY, 0);
// HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO1_NEW_MESSAGE, 0);
// HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_TX_FIFO_EMPTY, 0);
// HAL_FDCAN_ActivateNotification(&hfdcan3, FDCAN_IT_RX_FIFO1_NEW_MESSAGE, 0);
// HAL_FDCAN_ActivateNotification(&hfdcan3, FDCAN_IT_TX_FIFO_EMPTY, 0);
HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_RX_FIFO0_NEW_MESSAGE
| FDCAN_IT_TX_EVT_FIFO_NEW_DATA
| FDCAN_IT_RAM_ACCESS_FAILURE, 0);//加一个RAM访问失败中断
@ -360,6 +400,11 @@ int8_t BSP_FDCAN_Init(void) {
| FDCAN_IT_TX_EVT_FIFO_NEW_DATA
| FDCAN_IT_RAM_ACCESS_FAILURE, 0);
/* __ ,启动! */
HAL_FDCAN_Start(&hfdcan1);
HAL_FDCAN_Start(&hfdcan2);
HAL_FDCAN_Start(&hfdcan3);
BSP_FDCAN_RegisterCallback(BSP_FDCAN_1, HAL_FDCAN_RX_FIFO0_MSG_PENDING_CB, BSP_FDCAN_RxFifo0Callback);
BSP_FDCAN_RegisterCallback(BSP_FDCAN_1, HAL_FDCAN_TX_EVENT_FIFO_CB, BSP_FDCAN_TxCompleteCallback);
@ -369,10 +414,7 @@ int8_t BSP_FDCAN_Init(void) {
BSP_FDCAN_RegisterCallback(BSP_FDCAN_3, HAL_FDCAN_RX_FIFO1_MSG_PENDING_CB, BSP_FDCAN_RxFifo1Callback);
BSP_FDCAN_RegisterCallback(BSP_FDCAN_3, HAL_FDCAN_TX_EVENT_FIFO_CB, BSP_FDCAN_TxCompleteCallback);
/* __ ,启动! */
HAL_FDCAN_Start(&hfdcan1);
HAL_FDCAN_Start(&hfdcan2);
HAL_FDCAN_Start(&hfdcan3);
//POWER ENABLE
// HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
@ -432,7 +474,23 @@ int8_t BSP_FDCAN_Transmit(BSP_FDCAN_t fdcan, BSP_FDCAN_Format_t format, uint32_t
default:
return BSP_ERR;
}
tx_msg.header.DataLength = dlc * 8;
tx_msg.header.ErrorStateIndicator = FDCAN_ESI_ACTIVE;
tx_msg.header.BitRateSwitch = FDCAN_BRS_OFF;
tx_msg.header.FDFormat = FDCAN_CLASSIC_CAN;
tx_msg.header.TxEventFifoControl = FDCAN_STORE_TX_EVENTS;
tx_msg.header.MessageMarker = 0x01;
// tx_msg.header.DataLength = FDCAN_DLC_BYTES_64;
if (dlc <= 8) {
tx_msg.header.DataLength = FDCAN_DLC_BYTES_8;
} else if (dlc <= 24) {
tx_msg.header.DataLength = FDCAN_DLC_BYTES_24;
} else if (dlc < 32) {
tx_msg.header.DataLength = FDCAN_DLC_BYTES_32;
} else if (dlc < 48) {
tx_msg.header.DataLength = FDCAN_DLC_BYTES_48;
} else {
tx_msg.header.DataLength = FDCAN_DLC_BYTES_64;
}
if (data != NULL && dlc > 0)
memcpy(tx_msg.data, data, dlc);
fifolevel=HAL_FDCAN_GetTxFifoFreeLevel(hfdcan);

View File

@ -20,7 +20,7 @@ extern "C" {
#define BSP_FDCAN_DEFAULT_QUEUE_SIZE 10
#define BSP_FDCAN_TIMEOUT_IMMEDIATE 0
#define BSP_FDCAN_TIMEOUT_FOREVER osWaitForever
#define BSP_FDCAN_TX_QUEUE_SIZE 16
#define BSP_FDCAN_TX_QUEUE_SIZE 32
/* Exported types ----------------------------------------------------------- */
typedef enum {

View File

@ -10,6 +10,7 @@
#include "bsp/bsp.h"
#include "bsp/fdcan.h"
// #include "bsp/pwm.h"
#include "bsp/bsp_can.h"
#include <math.h>
/* USER INCLUDE END */
@ -22,6 +23,9 @@
/* USER STRUCT END */
/* Private function --------------------------------------------------------- */
void can_rx_callback(bsp_can_t can, uint32_t id, uint8_t *data, void *arg) {
// 这里可以打印、断点或设置标志位
}
/* Exported functions ------------------------------------------------------- */
void Task_blink(void *argument) {
(void)argument; /* 未使用argument消除警告 */
@ -48,6 +52,11 @@ void Task_blink(void *argument) {
BSP_FDCAN_RegisterId(BSP_FDCAN_1, 0x101, 8);
BSP_FDCAN_RegisterId(BSP_FDCAN_2, 0x102, 8);
BSP_FDCAN_RegisterId(BSP_FDCAN_3, 0x103, 8);
// bsp_can_init();
// bsp_can_register_callback(BSP_CAN_1, CAN_RX_MSG_CALLBACK, can_rx_callback, NULL);
/* USER CODE INIT END */
while (1) {
@ -56,7 +65,8 @@ void Task_blink(void *argument) {
// 呼吸灯 - 基于tick的正弦波
// float duty = (sinf(tick * 0.003f) + 1.0f) * 0.5f; // 0到1之间的正弦波加快频率
// BSP_PWM_SetComp(BSP_PWM_LED_G, duty);
// uint8_t tx_data[8] = {1,2,3,4,5,6,7,8};
// bsp_can_trans_packet(BSP_CAN_1, CAN_FORMAT_STD, 0x123, tx_data);
// 测试:向三路 CAN 周期性发送电机控制帧(示例数据),并轮询接收
{
uint8_t data1[8] = {0xA1, 0x01, 0x34, 0x12, 0x10, 0x00, 0x00, 0x00};
@ -73,11 +83,6 @@ void Task_blink(void *argument) {
BSP_FDCAN_Transmit(BSP_FDCAN_2, BSP_FDCAN_FORMAT_STD_DATA, 0x102, data2, 8);
BSP_FDCAN_Transmit(BSP_FDCAN_3, BSP_FDCAN_FORMAT_STD_DATA, 0x103, data3, 8);
/* 尝试驱动软件 TX 队列续写(当硬件 FIFO 满且未启用 Tx Event 回调时使用轮询/主动驱动) */
// BSP_FDCAN_TxCompleteCallback();
// 立即轮询接收(非阻塞),收到消息则通过 LED 指示
if (BSP_FDCAN_GetMessage(BSP_FDCAN_1, 0x101, &msg, BSP_FDCAN_TIMEOUT_IMMEDIATE) == BSP_OK) {
}
if (BSP_FDCAN_GetMessage(BSP_FDCAN_2, 0x102, &msg, BSP_FDCAN_TIMEOUT_IMMEDIATE) == BSP_OK) {
@ -85,7 +90,7 @@ void Task_blink(void *argument) {
if (BSP_FDCAN_GetMessage(BSP_FDCAN_3, 0x103, &msg, BSP_FDCAN_TIMEOUT_IMMEDIATE) == BSP_OK) {
}
}
osDelay(10);
// osDelay(10);
/* USER CODE END */
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
}