?? zz09_cantocan.c
字號:
/*********************************************
** 功能描述: CAN口測試,11位標準標識符**
*********************************************/
#include "p30f6014.h"
int failmemory[40];
unsigned int buffer1;
unsigned int buffer2;
unsigned int buffer3;
unsigned int buffer4;
unsigned long int i = 0;
void initial1()
{
C1CTRLbits.REQOP = 0x4; //請求進入配置模式
while (C1CTRLbits.OPMODE!=0x4){} //確認進入配置模式
C1TX0CON = 0x0003; //發(fā)送0郵箱配置,高優(yōu)先級
C1TX0SID = 0x0020; //發(fā)送0標準標識符,11位
C1TX0DLC = 0x01c0; //發(fā)送0數(shù)據(jù)長度,8字節(jié)
C1RX0CON = 0x0000; //接收0郵箱配置
C1RX0DLC = 0x0008; //接收0數(shù)據(jù)長度,8字節(jié)
C1RXF0SID = 0x0020; //接收濾波器0標準標識符,11位
C1RXM0SID = 0xffff; //接收屏蔽0標準標識符
C1CFG1 = 0x00ff; //波特率配置
C1CFG2 = 0x07ff;
C1CTRLbits.REQOP = 0x0; //請求進入正常模式
while (C1CTRLbits.OPMODE!=0x0){} //確認進入正常模式
return;
}
void initial2()
{
C2CTRLbits.REQOP = 0x4; //請求進入配置模式
while (C2CTRLbits.OPMODE!=0x4){} //確認進入配置模式
C2TX0CON = 0x0003; //發(fā)送0郵箱配置
C2TX0SID = 0x0020; //發(fā)送0標準標識符,11位
C2TX0DLC = 0x01c0; //發(fā)送0數(shù)據(jù)長度,8字節(jié)
C2RX0CON = 0x0000; //接收0郵箱配置
C2RX0DLC = 0x0008; //接收0數(shù)據(jù)長度,8字節(jié)
C2RXF0SID = 0x0020; //接收濾波器0標準標識符,11位
C2RXM0SID = 0xffff; //接收屏蔽0標準標識符
C2CFG1 = 0x00ff; //波特率配置
C2CFG2 = 0x07ff;
C2CTRLbits.REQOP = 0x0; //請求進入正常模式
while (C2CTRLbits.OPMODE!=0x0){} //確認進入正常模式
return;
}
int main()
{
INTCON1=0x0000;
INTCON2=0x0000; //關(guān)閉所有中斷
initial1();
initial2();
while(1)
{
C2TX0B1 = 0x5555; //發(fā)送緩沖寄存器8字節(jié)
C2TX0B2 = 0x5555;
C2TX0B3 = 0x5555;
C2TX0B4 = 0x5501;
C2TX0CONbits.TXREQ = 1; //啟動發(fā)送
while (C2TX0CONbits.TXREQ==1){} //等待發(fā)送完成
for (i=0;i<2;i++){}
if (C1RX0CONbits.RXFUL == 1)
{
buffer1 = C1RX0B1;
buffer2 = C1RX0B2;
buffer3 = C1RX0B3;
buffer4 = C1RX0B4;
C1RX0CONbits.RXFUL = 0;
for (i=0;i<300000;i++){}
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -