📄 test_can.c
字号:
#include <stdlib.h>#define cana_addr 0xeb300000#define canb_addr 0xeb308000struct CanControl { unsigned short CR; //控制寄存器 unsigned short CMR;//命令寄存器 unsigned short SR; //状态寄存器 unsigned short IR;//中断寄存器 unsigned short ACR;//验收寄存器 unsigned short AMR;//屏蔽寄存器 unsigned short BTR0; unsigned short BTR1; unsigned short OCR; unsigned short TR; // 寄存器00..09 unsigned short TxDSCR[2],TxData[8];//发送ID,数据 10..19 unsigned short RxDSCR[2],RxData[8];//接收ID,数据 20..29 unsigned short XX30,CDR;//31 时钟驱动 30..31};static struct CanControl *pcana=cana_addr;static struct CanControl *pcanb=canb_addr;int main(int argc,char *argv[]){ int volatile *p; short volatile *p1; short tmp; int i,j=0; pcana->CDR = tmp|0x03; pcana->CR=0x0f; pcana->CMR=0; pcana->ACR=0x07; pcana->AMR=0xff; pcana->OCR=0xfa; pcana->BTR0=0x01; pcana->BTR1=0x14; pcanb->CDR = tmp|0x03; pcanb->CR=0x0f; pcanb->CMR=0; pcanb->ACR=0x07; pcanb->AMR=0xff; pcanb->OCR=0xfa; pcanb->BTR0=0x01; pcanb->BTR1=0x14; //pcanb->BTR0=0x01; //pcanb->BTR1=0x14; getchar(); printf(" 8bit read on 8bit device:%x,%x\n",pcana->BTR0&0xff,pcana->BTR1&0xff); printf(" 8bit read on 8bit device:%x,%x\n",pcanb->BTR0&0xff,pcanb->BTR1&0xff); printf("we can test\n"); pcana->CR = 0x0e; pcanb->CR = 0x0e; printf("RxDsCR is %x,%x\n",pcanb->RxDSCR[0],pcanb->RxDSCR[1]); for(i=0;i<8;i++) printf("the data %x is %x\n",i,pcanb->RxData[i]); getchar(); while(1) { j++; //pcana->CR &= 0xfe; //pcana->CR &= 0xfe; printf("CR=%x\n",pcana->CR&0xff); pcana->TxDSCR[0] = 0x00; pcana->TxDSCR[1] = 0x08; for(i=0;i<8;i++) pcana->TxData[i]=i+j; printf("the length is %x\n",pcana->TxDSCR[1]); for(i=0;i<8;i++) printf("the data %x is %x\n",i,pcana->TxData[i]); printf("wait for key\n"); pcana->CMR=0x01; getchar(); printf("CANA:\n"); printf(" is %x,%x\n",pcanb->RxDSCR[0],pcanb->RxDSCR[1]); printf("CANB:\n"); printf("RxDsCR is %x,%x\n",pcanb->RxDSCR[0],pcanb->RxDSCR[1]); for(i=0;i<8;i++) printf("the data %x is %x\n",i,pcanb->RxData[i]); pcanb->CMR= 0x04; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -