找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5864|回復(fù): 1
收起左側(cè)

pic單片機(jī)驅(qū)動(dòng)CAN接口收發(fā)數(shù)據(jù)C語言程序,11位標(biāo)準(zhǔn)標(biāo)識(shí)符

[復(fù)制鏈接]
ID:51707 發(fā)表于 2013-7-11 02:54 | 顯示全部樓層 |閱讀模式
/*********************************************
** 功能描述: CAN口測(cè)試,11位標(biāo)準(zhǔn)標(biāo)識(shí)符**
*********************************************/
#include "p30f6014.h"
int failmemory[40];
_FWDT(WDT_OFF);
//_FOSC(CSW_FSCM_OFF & XT);
_FOSC(CSW_FSCM_OFF & XT_PLL4);
unsigned int buffer1;
unsigned int buffer2;
unsigned int buffer3;
unsigned int buffer4;
unsigned long int i = 0;

void initial1()
{
    C1CTRLbits.REQOP = 0x4; //請(qǐng)求進(jìn)入配置模式
    C1CTRLbits.CANCKS   =   0;
    while (C1CTRLbits.OPMODE!=0x4){}  //確認(rèn)進(jìn)入配置模式
    C1TX0CON = 0x0003;      //發(fā)送0郵箱配置,高優(yōu)先級(jí)
    C1TX0SID = 0x0020;      //發(fā)送0標(biāo)準(zhǔn)標(biāo)識(shí)符(ID),11位
    C1TX0DLC = 0x01c0;      //發(fā)送0數(shù)據(jù)長(zhǎng)度,8字節(jié)
    C1RX0CON = 0x0000;      //接收0郵箱配置
    C1RX0DLC = 0x0008;      //接收0數(shù)據(jù)長(zhǎng)度,8字節(jié)
    C1RXF0SID = 0x0010;     //接收濾波器0標(biāo)準(zhǔn)標(biāo)識(shí)符(ID),11位   
    C1RXM0SID = 0xffff;     //接收屏蔽0標(biāo)準(zhǔn)標(biāo)識(shí)符
/*******波特率配置*******************************/
    C1CFG1bits.SJW      =   0x3;        
    C1CFG1bits.BRP      =   0xE;   
    C1CFG2bits.SEG2PH   =   0x7;
    C1CFG2bits.SEG1PH   =   0x7;
    C1CFG2bits.PRSEG    =   0x7;
    C1CTRLbits.REQOP = 0x0;             //請(qǐng)求進(jìn)入正常模式
    while (C1CTRLbits.OPMODE!=0x0){}    //確認(rèn)進(jìn)入正常模式
    return;
}  

int main()
{
    for (i=0;i<300000;i++){}
    INTCON1=0x0000;
    INTCON2=0x0000;    //關(guān)閉所有中斷     
    initial1();
    while(1)
    {
        C1TX0B1 = 0xAAAA;  //發(fā)送緩沖寄存器8字節(jié)
        C1TX0B2 = 0x5555;
        C1TX0B3 = 0x5555;
        C1TX0B4 = 0xAAAA;
        C1TX0CONbits.TXREQ = 1; //啟動(dòng)發(fā)送
        while (C1TX0CONbits.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ù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表