公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
xiha_4819631
Level 3
Level 3
25 replies posted 10 replies posted 10 questions asked
大神们,遇到这样一个问题,在程序运行中,因一些特殊需求,要把把XMC4500的CAN外设关闭,因此调用了库里面的XMC_CAN_Disable();函数,但是调用后死机,是什么情况呢?
0 点赞
4 回复数
跑道
Level 4
Level 4
100 replies posted 50 replies posted 25 replies posted
死机是死在哪啊
0 点赞
xiha_4819631
Level 3
Level 3
25 replies posted 10 replies posted 10 questions asked
我打开Dissable的函数看了下,没有while.这个Disable函数里面有两部分 一个是 obj->CLC = CAN_CLC_DISR_Msk; 另一行是:XMC_SCU_RESET_AssertPeripheralReset(XMC_SCU_PERIPHERAL_RESET_MCAN); 然后我这么干,不调用Disable函数,手写寄存器:CAN_NODE_0.global_ptr->canglobal_ptr->CLC=0x01; 这么写,还是卡住,手上没有Miniwgeler,没有跟踪调试。就用串口打印,在CAN_NODE_0.global_ptr->canglobal_ptr->CLC=0x01前后都放置打印,前面的能打出来,后面的就打不出来。所以认为执行CAN_NODE_0.global_ptr->canglobal_ptr->CLC=0x01的时候卡死。
0 点赞
User13396
Level 5
Level 5
卡在while等待?
0 点赞
xiha_4819631
Level 3
Level 3
25 replies posted 10 replies posted 10 questions asked
我打开Dissable的函数看了下,没有while.这个Disable函数里面有两部分 一个是obj->CLC = CAN_CLC_DISR_Msk; 另一行是:XMC_SCU_RESET_AssertPeripheralReset(XMC_SCU_PERIPHERAL_RESET_MCAN); 然后我这么干,不调用Disable函数,手写寄存器:CAN_NODE_0.global_ptr->canglobal_ptr->CLC=0x01;这么写,还是卡住,手上没有Miniwgeler,没有跟踪调试。就用串口打印,在CAN_NODE_0.global_ptr->canglobal_ptr->CLC=0x01前后都放置打印,前面的能打出来,后面的就打不出来。所以认为执行CAN_NODE_0.global_ptr->canglobal_ptr->CLC=0x01的时候卡死。
0 点赞