資源簡介
裸編系統下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)
- 上一篇:嵌入式QtC++編程課件
- 下一篇:STM32燒寫算法flash包
評論
共有 條評論