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

📄 test_can.c

📁 arm-linux 下小键盘驱动程序源码
💻 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 + -