电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

CAN总线控制器SJA1000源程序c语言解读VIP免费

CAN总线控制器SJA1000源程序c语言解读_第1页
1/20
CAN总线控制器SJA1000源程序c语言解读_第2页
2/20
CAN总线控制器SJA1000源程序c语言解读_第3页
3/20
CAN总线控制器sja1000源程序SJA1000是一种独立控制器用于移动目标和一般工业环境中的区域网络控制CAN它是PHILIPS半导体PCA82C200CAN控制器BasicCAN的替代产品而且它增加了一种新的工作模式PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议。1特性和PCA82C200独立CAN控制器引脚兼容和PCA82C200独立CAN控制器电气兼容PCA82C200模式即默认的BasicCAN模式扩展的接收缓冲器64字节先进先出FIFO和CAN2.0B协议兼容PCA82C200兼容模式中的无源扩展帧同时支持11位和29位识别码位速率可达1Mbits/sPeliCAN模式扩展功能--可读/写访问的错误计数器--可编程的错误报警限制--最近一次错误代码寄存器--对每一个CAN总线错误的中断--具体控制位控制的仲裁丢失中断--单次发送无重发--只听模式无确认无活动的出错标志--支持热插拔软件位速率检测--验收滤波器扩展4字节代码4字节屏蔽--自身信息接收自接收请求24MHz时钟频率对不同微处理器的接口可编程的CAN输出驱动器配置增强的温度适应-40-+125#include#include#include//-----------------------沿袭引脚和变量----------------------------------------------#defineucharunsignedchar//宏定义#defineuintunsignedint//宏定义voidMCU_init(void);/*P2口的管脚定义*/sbitLED1=P2^6;sbitLED2=P2^5;sbitSJA_CS=P2^7;//SJA1000片选管脚,低电平有效//sbitSJA_RST=P1^2;/*P3口的管脚定义*/sbitSJA_RD=P3^7;sbitSJA_WR=P3^6;//-----------------------定义寻址的基址--------------------------------------------------------#definebase_Adr0x7F00//-----------------------定义总线定时寄存器的值--------------------------------------------------------#defineSJA_BTR00x07//该值需要用户根据需要的波特率进行计算,推荐使用周立功发布的波特率计算器#defineSJA_BTR10x2F//-----------------------设置接收报文类型(标示符)--------------------------------------------------------//该值需要用户根据实际需要重新配置#defineSJA_ACR0x11//验收代码寄存器的值#defineSJA_AMR0xFF//验收屏蔽寄存器的值//-----------------------设置输出时钟类型--------------------------------------------------------//该值需要用户根据实际需要重新配置#defineSJA_OCR0xaa//输出控制寄存器的值#defineSJA_CDR0x40//时钟分频寄存器的值//-----------------------设置SJA中断,1为开中断--------------------------------------------------------#defineSJA_OIE1//溢出中断#defineSJA_EIE1//错误中断#defineSJA_TIE1//发送中断#defineSJA_RIE1//接收中断//-----------------------定义地址指针,指向基址--------------------------------------------------------unsignedcharxdata*SJA_base_Adr=base_Adr;//-----------------------定义硬件故障标志位--------------------------------------------------------bitbdataconnect_OK=0;//connect_OK=1设备连接正常//connect_OK=0设备连接故障//-----------------------定义硬件故障标志位--------------------------------------------------------bitbdataSJA_workmode=1;//SJA_workmode=1SJA工作在工作模式//SJA_workmode=0工作在复位模式//-----------------------定义SJA1000读写缓冲区的数据结构--------------------------------------------------------structBASICCAN_BUFStruct{unsignedcharIDH8;unsignedcharIDL_R_DLC;unsignedcharFrame_Data[8];}receive_BUF,send_BUF;//------------------------------------------------------------------------------------------------------//函数类别供调用子函数//函数名称send_BUF_init//入口函数无//出口函数无//函数功能对MCU内公共变量结构send_BUF赋初值//------------------------------------------------------------------------------------------------------bitsend_BUF_init(void){//调用send_now()函数的时候,所发送的数据是在这里初始化的。请用户根据具体情况自己调整bitsetting_success=0;send_BUF.IDH...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

CAN总线控制器SJA1000源程序c语言解读

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部