initcan.c
来自「一个带CANBUS的倒车雷达源码!希望大家能用的上!」· C语言 代码 · 共 32 行
C
32 行
#include "config.h"
void InitCan( void )
{
/*------------config CAN as Mode 0------------*/
ECANCON = 0x00;
/*------ config CAN CONFIG STATUS----------*/
TRISB = ( TRISB|0x08 ) & 0xFB; /* RB2(CANTX) output , RB3(CANRX) input */
CANCON = 0x80; /* config mode */
while( ( CANSTAT & 0X80 ) == 0 ); /* waiting entry config mode */
/*------ config baud rate ----------*/
BRGCON1 = 0x0F; //Sync_Seg(bit7、6)=1TQ, BRP( BRGCON1 bit5~0 ) = 3, 则TQ = [ 2*( BRP + 1 )]/Fosc = 32/(8*4)MHz =1us
BRGCON2 = 0x90; //Phase_Seg1(bit5~3)=3TQ; Prog_Seg(bit2~0)=1TQ
BRGCON3 = 0x42; //Phase_Seg2(bit2~0)=3TQ; Norminal bit Time = 8TQ; bit Rate=125KHz
/*------config CAN work mode ----------*/
CANCON = 0x00;
while( ( CANSTAT & 0xE0 ) != 0 ); //wait to finish configuration
/*------config CAN interrupt ----------*/
PIR3 = 0x00; //clear all CAN interrupt flag
PIE3bits.RXB0IE = 1; //enable received interrupt of received buffer 0
IPR3bits.RXB0IP = 1; //the received interrupt of received buffer 0 has highest priority
PIE3bits.RXB1IE = 1;
IPR3bits.RXB1IP = 1;
INTCONbits.GIE = 1; //enable all interrupt
INTCONbits.PEIE = 1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?