chenxiaolang 发表于 2021-9-12 15:00

PIC32MK CAN2初始化卡死

本帖最后由 chenxiaolang 于 2021-9-12 15:02 编辑

用PIC32MK1024MCM100做一个电机控制项目,用了两路CAN:CAN1和CAN2,两者配置一致,如下图


多次测试发现,CAN1可以正常工作,CAN2一直卡在初始化最后一步,如下图

最后两句代码其实是:
CFD2CONbits.REQOP = 0x000;               // 请求CAN FD混合模式
while(CFD2CONbits.OPMOD != 0x000);   // 等待配置完成

查看手册,CFD2CON的REQOP是模式请求,OPMOD是模式状态,Harmony生成的代码也是按规格标志的流程操作的,并且和CAN1的代码一样,但就是卡死。



lss1330 发表于 2021-11-2 22:06

本帖最后由 lss1330 于 2021-11-2 22:14 编辑

楼主问题解决了吗,是不是PMD5寄存器的29位没有设为0,如果没有设为0,CAN2模块的时钟将不会使能,所以while循环等不到CAN模块初始化完成,变成死等

chenjun89 发表于 2021-11-3 08:20

一楼应该是对的,是不是时钟没有使能。
页: [1]
查看完整版本: PIC32MK CAN2初始化卡死