请教dsPIC30f使用内部时钟如何设置CAN波特率!?

2020-02-08 09:16发布

单片机内部快速振荡器标称值7.37MHz,CANCKS = 1,TQ = 16,求教要怎么样可将CAN波特率设置为125kHz? 波特率配置寄存器C1CFG1中的BRP<5:0>怎么样配置?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
gaolf_2000
2020-02-08 14:14
//我用32M,你参考一下吧
// FCAN = Fcy = 32 MHz. TQ = 16. Prescale = 16, Data Rate = FCAN/(TQ * pre) = 32MHz/(16*16) = 125 kHz.
                        C1CTRL1bits.CANCKS = ECAN_FCAN_IS_FCY; // CANCKS = 1, sets FCAN = Fcy = 40 MHz
                        //16 TQ for a bit time. 16 = Sync(1) + Prop seg (5) + Seg1 (5) + Seg2 (5)
                        C1CFG2 = ECAN_NO_WAKEUP |
                                        ECAN_SAMPLE_3TIMES |      //sample three times at sample point
                                        ECAN_SEG1PH_5TQ |         //seg1 = 8 TQ
                                        ECAN_SEG2_PROGRAMMABLE |  //seg2 is programmable
                                        ECAN_SEG2PH_5TQ |         //seg2 = 6 TQ
                                        ECAN_PRSEG_5TQ;           //propagation delay segment = 5 TQ

                        C1CFG1 = ECAN_SYNC_JUMP_4 |    //use maximum sync jump width
                                        ECAN_PRE_2x8;         //prescalers to 2x8

一周热门 更多>