• 大小: 0.01M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-21
  • 语言: C/C++
  • 标签: CAN  SJA1000  驱动  

资源简介

裸编系统下SJA1000芯片驱动程序。IO口方式实现。

资源截图

代码片段和文件信息

/*
*****************************************************************************************************************
*                                                    DPS4-128
*                               11
*
*                                 (c) Copyright 2012 MKL Ltd. Qingdao CN
*                                              All Rights Reserved
*
*
* File      :  SJA1000.C
* Purpose   :  Init source file.
* By        :  Zhu Liangtao
* Version   :  1.00


----------------------------------------------------------------------
Version-Date-------Author------- -Explanation
----------------------------------------------------------------------
1.00    111108 Zhu Liangtao    First release

*****************************************************************************************************************
*/
#include “DSP2803x_Device.h“ // Peripheral address definitions
#include “DSP2803x_GlobalPrototypes.h“
#include “EVC_var.h“

#define     RST_N   GpioDataRegs.GPADAT.bit.GPIO20
#define     ALE  GpioDataRegs.GPADAT.bit.GPIO12
#define     CS_N GpioDataRegs.GPADAT.bit.GPIO7
#define     RD_N GpioDataRegs.GPADAT.bit.GPIO6
#define     WR_N GpioDataRegs.GPADAT.bit.GPIO19

#define     DATA0 GpioDataRegs.GPADAT.bit.GPIO21
#define     DATA1 GpioDataRegs.GPADAT.bit.GPIO0
#define     DATA2 GpioDataRegs.GPADAT.bit.GPIO1
#define     DATA3 GpioDataRegs.GPADAT.bit.GPIO10
#define     DATA4 GpioDataRegs.GPADAT.bit.GPIO4
#define     DATA5 GpioDataRegs.GPADAT.bit.GPIO11
#define     DATA6 GpioDataRegs.GPADAT.bit.GPIO8
#define     DATA7 GpioDataRegs.GPADAT.bit.GPIO16



#define     CR     0x00        //控制寄存器
#define     CMR     0x01        //命令寄存器
#define     SR      0x02        //状态寄存器
#define     IR      0x03        //中断寄存器
#define     ACR     0x04        //验收代码寄存器
#define     AMR     0x05        //验收屏蔽寄存器
#define BTR0 0x06        //总线定时0寄存器
#define BTR1 0x07        //总线定时1寄存器
#define OCR     0x08        //输出控制寄存器
#define IDEN1 0x0a        //发送识别码1寄存器
#define IDEN2   0x0b        //发送识别码2寄存器

#define RIDEN1 0x14        //接收识别码1寄存器
#define RIDEN2  0x15        //接收识别码2寄存器

#define CDR     0x1f        //时钟分频寄存器

#define     ACR_VALUE 0x46      //0x230/8 =0x46
#define     AMR_VALUE 0x00 //0xFF-0x46=0xB9  必须得00
//#define     ACR_VALUE 0xa9      //0x548-0x549-0x54a  0x548/8 =0xa9
//#define     AMR_VALUE 0x00

#define BTR0_VALUE 0x00 //波特率设置,BAUD=500KCLK=12MHZ
#define BTR1_VALUE 0x36
#define OCR_VALUE 0xda    //正常输出
#define IDEN1_VALUE 0x26    //发送识别码1  0x130/8
#define IDEN2_VALUE 0x08    //发送识别码2  8字节

#define  TX_START    0x0c //发送缓冲区有8字节RAM  
#define  RX_START    0x16 //接收缓冲区有8字节RAM   

/*******************************读数据******************************************/
Uint16 CAN_Read_Data(Uint16 Addr)
{
Uint16 ab;
a = Addr;

CS_N  = 1;                                          
WR_N  = 1;
RD_N  = 1;
ALE   = 0;

//写地址
    CAN_Port_Out();   
    Delay(1)

评论

共有 条评论