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

📄 rx.c

📁 pic18f8680的内置can通信程序
💻 C
字号:
/*pic18f8680内置can控制器接收程序*/
#include<p18f8680.h>  
void InterruptHandlerHigh(void);
/***********************************************************************************
函数功能:初始化CAN模块
入口参数:无
出口参数:无
调用说明:无
***********************************************************************************/

void ini_can(void)
{
TRISG |= 0x04;
TRISG &= 0xFC;

ECANCON &=0X3F;
CANCON |= 0x88;
CANCON &= 0xF9;
while((CANSTAT&0X80)!=0X80);

RXB0CON=0X20;
 CIOCON=0X00;
RXB0DLC=0X08;

RXF0SIDH=0X00;
RXF0SIDL=0X20;
RXM0SIDH=0X00;
RXM0SIDL=0X00;


BRGCON1=0X01;			//TQ=1us,Tsjw=1TQ
BRGCON2=0B11001011;		//Tphase2 PROGRAMBLE,SAM THREE,Tpg=2TQ,Tphase1=4TQ
BRGCON3=0B10000011;		//Tphase2=4TQ,do not use wake up
							//Tpg+Tphase1>=Tphase2>=Tsjw


RCON |=0X80;
INTCON|=0X80;
PIE3|=0X01;
//INTCON &=0X07;
//PIR3=0X00;
//PIE3=0X00;
IPR3=0X01;
}
/***********************************************************************************
函数功能:启动CAN模块接收
入口参数:无
出口参数:无
调用说明:无
***********************************************************************************/
#pragma code InterruptVectorHigh=0x000008
void InterruptVectorHigh(void)
{
    _asm
        goto InterruptHandlerHigh
    _endasm
}
#pragma code
#pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh()
{
//unsigned char i;
unsigned char data[8];

//if (PIR3bits.RXB0IF ==1)
 //while((PIR3&0X01)==0X00);
PIR3bits.RXB0IF = 0;

data[0]=RXB0D0;
data[1]=RXB0D1;
data[2]=RXB0D2;
data[3]=RXB0D3;
data[4]=RXB0D4;
data[5]=RXB0D5;
data[6]=RXB0D6;
data[7]=RXB0D7;
//for (i=0;i<7;i++)
//{
//data[i]=RXB0M;      
//}
RXB0CON=0X00;         //RXFUL位清零,准备下一次接收消息;
}
/***********************************************************************************
函数功能:主函数
入口参数:无
出口参数:无
调用说明:无
***********************************************************************************/

void main(void)
{
ini_can();

CANCON &=0X1F;
while((CANSTAT&0XE0)!=0X00);

//RCON |=0X80;
//INTCON |=0XC0;
//PIE3|=0X01;
while (1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -