Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
RT_RMR42E
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
时昊
RT_RMR42E
Commits
4ab79f59
Commit
4ab79f59
authored
Feb 18, 2025
by
李冠华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🐞
fix:根据最新驱动,调通CAN功能
parent
40b31df2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
48 additions
and
9 deletions
+48
-9
CAN_CH0_CAN_Communication_Matrix.c
...ce/Application/CAN_APP/CAN_CH0_CAN_Communication_Matrix.c
+2
-2
Can_User.c
Firmware/Source/Application/CAN_User/Can_User.c
+42
-5
Can_User.h
Firmware/Source/Application/CAN_User/Can_User.h
+2
-2
PowerManag_user.c
Firmware/Source/Component/PowerManagement/PowerManag_user.c
+2
-0
No files found.
Firmware/Source/Application/CAN_APP/CAN_CH0_CAN_Communication_Matrix.c
View file @
4ab79f59
...
@@ -507,7 +507,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
...
@@ -507,7 +507,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
1000ul
,
1000ul
,
0x225ul
,
0x225ul
,
((
void
*
)
0
),
((
void
*
)
0
),
(
(
void
*
)
0
),
(
CAN_0x225_Receive
),
((
void
*
)
0
),
((
void
*
)
0
),
},
},
{
{
...
@@ -667,7 +667,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
...
@@ -667,7 +667,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
1000ul
,
1000ul
,
0x234ul
,
0x234ul
,
((
void
*
)
0
),
((
void
*
)
0
),
(
(
void
*
)
0
),
(
CAN_0x234_Receive
),
((
void
*
)
0
),
((
void
*
)
0
),
},
},
{
{
...
...
Firmware/Source/Application/CAN_User/Can_User.c
View file @
4ab79f59
...
@@ -26,7 +26,7 @@ void Can_Init(void)
...
@@ -26,7 +26,7 @@ void Can_Init(void)
Can_Config
.
MASK
[
2
]
=
0x3FFU
;
Can_Config
.
MASK
[
2
]
=
0x3FFU
;
Can_Config
.
MASK
[
3
]
=
0x7FFU
;
Can_Config
.
MASK
[
3
]
=
0x7FFU
;
#endif
#endif
Can_Config
.
rx_callback
=
Can_Rx_Cak
;
Can_Config
.
rx_callback
=
Read_RingBuff
;
//
Can_Rx_Cak;
COM_CAN_Init
();
COM_CAN_Init
();
rte_can_init
(
&
Can_Config
);
rte_can_init
(
&
Can_Config
);
...
@@ -295,22 +295,42 @@ void COM_CAN_Init(void)
...
@@ -295,22 +295,42 @@ void COM_CAN_Init(void)
CAN_CH0_CanMsgOp
.
u8CAN_RX_ENABLE
=
CAN_N_RX_Enable
;
CAN_CH0_CanMsgOp
.
u8CAN_RX_ENABLE
=
CAN_N_RX_Enable
;
Can_RX_BuffInit
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_CAN_MSG_CONST_ARRAY
,
CAN_CH0_ID_TOTAL_MAX
);
Can_RX_BuffInit
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_CAN_MSG_CONST_ARRAY
,
CAN_CH0_ID_TOTAL_MAX
);
CAN_RX_SetEnable
(
&
CAN_CH0_CanMsgOp
,
CAN_N_RX_Enable
);
CAN_RX_SetEnable
(
&
CAN_CH0_CanMsgOp
,
CAN_N_RX_Enable
);
}
void
CAN_TX_Init
(
void
)
{
memset
(
pTXBuff
,
0
,
sizeof
(
pTXBuff
));
memset
(
pTXBuff
,
0
,
sizeof
(
pTXBuff
));
CAN_CH0_CanMsgTxOp
.
CanMsg
=
(
st_CAN_SendOperation
*
)
pTXBuff
;
CAN_CH0_CanMsgTxOp
.
CanMsg
=
(
st_CAN_SendOperation
*
)
pTXBuff
;
CAN_CH0_CanMsgTxOp
.
pCAN_SendAttribute
=
CAN_CH0_CANSendAttr
;
CAN_CH0_CanMsgTxOp
.
Total_Msg
=
CAN_CH0_ID_SEND_TOTAL
;
CAN_CH0_CanMsgTxOp
.
Can_Write
=
COM_APP_Process
;
CAN_CH0_CanMsgTxOp
.
u8CAN_TX_ENABLE
=
CAN_N_TX_Disable
;
Can_TX_BuffInit
(
&
CAN_CH0_CanMsgTxOp
,
CAN_CH0_CANSendAttr
,
CAN_CH0_ID_SEND_TOTAL
,
COM_APP_Process
);
Can_TX_BuffInit
(
&
CAN_CH0_CanMsgTxOp
,
CAN_CH0_CANSendAttr
,
CAN_CH0_ID_SEND_TOTAL
,
COM_APP_Process
);
CAN_TX_SetEnable
(
&
CAN_CH0_CanMsgTxOp
,
CAN_N_TX_Enable
);
CAN_TX_SetEnable
(
&
CAN_CH0_CanMsgTxOp
,
CAN_N_TX_Enable
);
}
}
void
Can_QuickTimer_Init
(
void
)
{
uint32_t
i
=
0u
;
for
(
i
=
0u
;
i
<
CAN_CH0_ID_SEND_TOTAL
;
i
++
)
{
Can_Msg_TX_FastInitCycle
(
&
CAN_CH0_CanMsgTxOp
,
i
,
CAN_CH0_CANSendAttr
[
i
].
u32MsgCycleOffset
);
}
}
/**
/**
* @brief Buff恢复函数
* @brief Buff恢复函数
* @param deltaTime 调用时间 单位ms 10MS调用
* @param deltaTime 调用时间 单位ms 10MS调用
*/
*/
uint16_t
CanRxInitflag
=
0
;
void
Can_BusOff_Recover
(
uint8_t
deltaTime
)
void
Can_BusOff_Recover
(
uint8_t
deltaTime
)
{
{
if
(
get_can_busoff
(
CAN_CH_0
)
==
2
)
if
(
get_can_busoff
(
CAN_CH_0
)
==
2
)
{
{
CanRxInitflag
=
1
;
if
(
RSCAN0Busoff
.
Status
==
RSCAN0_BUS_STABLE
)
if
(
RSCAN0Busoff
.
Status
==
RSCAN0_BUS_STABLE
)
{
{
RSCAN0Busoff
.
Status
=
RSCAN0_BUS_OFF_LV1
;
RSCAN0Busoff
.
Status
=
RSCAN0_BUS_OFF_LV1
;
...
@@ -319,18 +339,20 @@ void Can_BusOff_Recover(uint8_t deltaTime)
...
@@ -319,18 +339,20 @@ void Can_BusOff_Recover(uint8_t deltaTime)
if
(
RSCAN0Busoff
.
Status
==
RSCAN0_BUS_OFF_LV1
)
if
(
RSCAN0Busoff
.
Status
==
RSCAN0_BUS_OFF_LV1
)
{
{
RSCAN0Busoff
.
Timer
++
;
RSCAN0Busoff
.
Timer
++
;
if
(
RSCAN0Busoff
.
Timer
>=
RSCAN0_BUS_OFF_LV1_RECOVERY_TIME
/
deltaTime
)
if
(
RSCAN0Busoff
.
Timer
>=
RSCAN0_BUS_OFF_LV1_RECOVERY_TIME
/
deltaTime
)
/**/
{
{
RSCAN0Busoff
.
Timer
=
0U
;
RSCAN0Busoff
.
Timer
=
0U
;
RSCAN0Busoff
.
Cnt
++
;
RSCAN0Busoff
.
Cnt
++
;
if
(
RSCAN0Busoff
.
Cnt
>=
10U
)
if
(
RSCAN0Busoff
.
Cnt
>=
10U
)
/**/
{
{
RSCAN0Busoff
.
Cnt
=
0U
;
RSCAN0Busoff
.
Cnt
=
0U
;
RSCAN0Busoff
.
Status
=
RSCAN0_BUS_OFF_LV2
;
RSCAN0Busoff
.
Status
=
RSCAN0_BUS_OFF_LV2
;
}
}
//需调用CAN中止函数,中止所有硬件buf内要发送的数据
Can_QuickTimer_Init
();
reset_busoff
(
CAN_CH_0
);
reset_busoff
(
CAN_CH_0
);
}
}
}
}
...
@@ -338,9 +360,11 @@ void Can_BusOff_Recover(uint8_t deltaTime)
...
@@ -338,9 +360,11 @@ void Can_BusOff_Recover(uint8_t deltaTime)
{
{
RSCAN0Busoff
.
Timer
++
;
RSCAN0Busoff
.
Timer
++
;
if
(
RSCAN0Busoff
.
Timer
>=
RSCAN0_BUS_OFF_LV2_RECOVERY_TIME
/
deltaTime
)
if
(
RSCAN0Busoff
.
Timer
>=
RSCAN0_BUS_OFF_LV2_RECOVERY_TIME
/
deltaTime
)
/**/
{
{
RSCAN0Busoff
.
Timer
=
0U
;
RSCAN0Busoff
.
Timer
=
0U
;
//需调用CAN中止函数,中止所有硬件buf内要发送的数据
Can_QuickTimer_Init
();
reset_busoff
(
CAN_CH_0
);
reset_busoff
(
CAN_CH_0
);
}
}
}
}
...
@@ -350,7 +374,20 @@ void Can_BusOff_Recover(uint8_t deltaTime)
...
@@ -350,7 +374,20 @@ void Can_BusOff_Recover(uint8_t deltaTime)
}
}
else
/* 总线正常,没有Bus-off发生*/
else
/* 总线正常,没有Bus-off发生*/
{
{
RSCAN0Busoff
.
RecoverTimer
++
;
if
(
RSCAN0Busoff
.
RecoverTimer
>=
4
)
{
RSCAN0Busoff
.
RecoverTimer
=
0
;
RSCAN0Busoff
.
Status
=
RSCAN0_BUS_STABLE
;
RSCAN0Busoff
.
Timer
=
0
;
RSCAN0Busoff
.
Cnt
=
0
;
}
if
(
CanRxInitflag
==
1
)
{
CanRxInitflag
=
0
;
Can_RX_Apply_Buff
();
}
}
}
}
}
...
...
Firmware/Source/Application/CAN_User/Can_User.h
View file @
4ab79f59
...
@@ -27,18 +27,18 @@ typedef struct
...
@@ -27,18 +27,18 @@ typedef struct
uint8_t
Status
;
uint8_t
Status
;
uint8_t
Timer
;
uint8_t
Timer
;
uint8_t
Cnt
;
uint8_t
Cnt
;
uint8_t
Re
portDTCCnt
;
uint8_t
Re
coverTimer
;
}
RSCAN0BusoffMonitorStruct
;
}
RSCAN0BusoffMonitorStruct
;
extern
void
CAN_TX_Init
(
void
);
extern
void
Can_Tx_Apply_Buff
(
void
);
extern
void
Can_Tx_Apply_Buff
(
void
);
extern
void
Can_RX_Apply_Buff
(
void
);
extern
void
Can_RX_Apply_Buff
(
void
);
extern
void
Can_BusOff_Recover
(
uint8_t
deltaTime
);
extern
void
Can_BusOff_Recover
(
uint8_t
deltaTime
);
extern
void
COM_CAN_Init
(
void
);
extern
void
COM_CAN_Init
(
void
);
extern
void
Can_Init
(
void
);
extern
void
Can_Init
(
void
);
extern
void
Can_Rx_Cak
(
CanTxRxMsg
*
Msg
);
extern
void
Can_Rx_Cak
(
CanTxRxMsg
*
Msg
);
extern
void
Busoff
(
void
);
extern
uint8_t
COM_APP_Process
(
st_CAN_Msg
*
Msg
);
extern
uint8_t
COM_APP_Process
(
st_CAN_Msg
*
Msg
);
extern
void
Can_Write
(
st_CAN_Msg
*
Msg
);
extern
void
Can_Write
(
st_CAN_Msg
*
Msg
);
...
...
Firmware/Source/Component/PowerManagement/PowerManag_user.c
View file @
4ab79f59
...
@@ -47,6 +47,7 @@ static void Power_KL30_Init(void)
...
@@ -47,6 +47,7 @@ static void Power_KL30_Init(void)
eeprom_StoreInfo_Init
();
eeprom_StoreInfo_Init
();
Can_Init
();
Can_Init
();
DFlash_init
();
DFlash_init
();
CAN_TX_Init
();
Analog_Signal_Conv_Init
();
Analog_Signal_Conv_Init
();
BU98R10_Init
();
BU98R10_Init
();
Sys_KL30_Init
();
Sys_KL30_Init
();
...
@@ -83,6 +84,7 @@ static void Power_Wakeup_Init(void)
...
@@ -83,6 +84,7 @@ static void Power_Wakeup_Init(void)
Simulated_IIC_2_Init
();
Simulated_IIC_2_Init
();
Gpio_Init
(
Gpio_WakeUp_Init
);
Gpio_Init
(
Gpio_WakeUp_Init
);
Can_Init
();
Can_Init
();
CAN_TX_Init
();
eeprom_StoreInfo_Init
();
eeprom_StoreInfo_Init
();
Analog_Signal_Conv_Init
();
Analog_Signal_Conv_Init
();
BU98R10_Init
();
BU98R10_Init
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment