⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initcan.c

📁 一个带CANBUS的倒车雷达源码!希望大家能用的上!
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -