CAN-bus(Controller Area Network)即控制器局域网,是国际上应用最广泛的现场总线之一。起先,CAN-bus被设计作为汽车环境中的微控制器之间通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。它是一种多主方式的串行通讯总线,基本设计规范要求有较高的位速率,高抗干扰性,而且能够检测出产生的任何错误。信号传输距离达到10Km时,仍然可提供高达5Kbps的数据传输速率。由于CAN串行通讯总线具有这些特性,它很自然的在汽车、制造业以及航空工业中受到广泛应用。以上是我在单片机上调试好的can总线程序

#include //SJA存储器定义头文件

#include //SJA子程序文件

调试好的can总线程序

//

void Init_Cpu(void); //初始化单片机

void Sja_1000_Init(void); //初始化SIA

//

void main(void)

{

s=0; //配置sja1000出现错误时,重新初始化

do{

Sja_1000_Init();

}while(s!=0);

Init_Cpu(); //initialize mcu

flag_init=0x00; //保存中断寄存器值清零

while(1)

{

if(rcv_flag) //if there is receive interrupt

{

rcv_flag=0; //接收标志位清零

BCAN_DATA_RECEIVE(rcv_data); //接收数据

BCAN_CMD_PRG(RRB_CMD); //释放接收缓冲区

flag_send=1; //发送命令置位

}

if(flag_send)

{

flag_send=0; //发送位清零

send_data[0]=rcv_data[2]; //接收到的"发送方ID10~ID3"

send_data[1]=rcv_data[3]; //接收到的"发送方ID2~ID0"和要求的数据长度

send_data[2]=0x88;

send_data[3]=0x89;

BCAN_DATA_WRITE(send_data); //发送数据

BCAN_CMD_PRG(TR_CMD); //置位发送请求位

for(count_k=0;count_k<200;count_k++)

display(a); //延时显示"5"

}

if (err_flag) //错误中断

{

for(count_k=0;count_k<280;count_k++)

display(c); //错误显示"1"

err_flag=0; //错误标志位清零

Sja_1000_Init(); //初始化SJA

}

display(b); //显示"p"

}

}

void ex0_int(void) interrupt 0 using 1 //外部中断0

{

SJA_BCANAdr=REG_INTERRUPT; //指针指向中断寄存器

flag_init=*SJA_BCANAdr; //保持中断寄存器值

}

void ex0_int(void) interrupt 0 using 1 //外部中断0

{

SJA_BCANAdr=REG_INTERRUPT; //指针指向中断寄存器

flag_init=*SJA_BCANAdr; //保持中断寄存器值

}

void Init_Cpu(void) //单片机初始化,开放外部中断0

{

PX0=1;

EX0=1;

EA=1;

}

void Sja_1000_Init(void)

{

s=BCAN_CREATE_COMMUNATION(); //SJA自测

s=BCAN_ENTER_RETMODEL(); //进入复位

s=BCAN_SET_BANDRATE(0x04); //设置波特率100K/S

s=BCAN_SET_OBJECT(0xaa,0x00); //设置地址ID:550

s=BCAN_SET_OUTCLK(0xaa,0x48); //设置输出方式,禁止COLOCKOUT输出

s=BCAN_QUIT_RETMODEL(); //退出复位模式

SJA_BCANAdr=REG_CONTROL; //地址指针指向控制寄存器

*SJA_BCANAdr|=0x1e; //开放错误接收发送中断

}

CAN通讯程序C语言,基于单片机的CANBUS程序(C语言)相关推荐

  1. 单片机c语言出租车计时程序,基于单片机的出租车计费(c语言).doc

    基于单片机的出租车计费(c语言) 基于单片机的出租车计费(c语言) 基于proteus仿真 一.设计要求: 1.用实现出租车计费器的设计. 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统 ...

  2. 单片机c语言时钟设计,基于单片机的数字时钟C语言设计.pdf

    第 2O卷第 6期 北华航天工业学 院学报 Vo1.2O No.6 2010年 l2月 JournalofNorthChinaInstituteofAerospaceEngineering Dec.2 ...

  3. 出租车收费题目及答案c语言,《基于单片机的出租车计费(c语言)》.doc

    基于单片机的出租车计费(c语言)基于proteus仿真 一.设计要求: 1.用实现出租车计费器的设计. 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统首先显示起步价(如.0),车行驶2k ...

  4. 智能循迹避障小车C语言程序编写思路,基于单片机的智能小车红外避障循迹系统设计与制作...

    余秀玲 余秀娟 摘 要:随着科技的高速发展,人们对生活质量的要求越来越高,无人驾驶汽车已经被广为研发和试用,由此智能小车的快速发展也是在情理之中.通过对基于单片机的智能小车的硬件及软件设计分析,实现红 ...

  5. 51单片机温度控制C语言程序详解,基于单片机的温度控制系统设计(附程序清单及原理图).doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp电子工程/通信技术&nbsp>&nbsp电子设计 基于单片机的温度控制系统设计(附程序清单及 ...

  6. 热电偶单片机代码c语言,基于单片机的热电偶发生器设计(含电路原理图,程序)...

    基于单片机的热电偶发生器设计(含电路原理图,程序)(课题申报表,任务书,开题报告,中期检查表,外文翻译,论文15000字,程序,答辩PPT) 摘 要 热电偶标准信号发生器为袖珍式键控现场检测仪表.其由 ...

  7. 声控灯程序C语言,基于单片机的声控灯控制系统设计.doc

    摘要:随着计算机技术的高速发展,单片机以其自身特有价格低廉.性能优良的特点,已经广泛应用与各种智能仪器.家庭电器.电子玩具等领域.基于单片机开发出稳定可靠.成本低廉的声控灯具有很强的实用性和经济性,可 ...

  8. 智能空调检测程序c语言,基于单片机的智能空调节电控制器毕业设计论文C语言编程.doc...

    基于单片机的智能空调节电控制器毕业设计论文C语言编程 目录 TOC \o "1-3" \u 第1章引言 PAGEREF _Toc231960072 \h 1 1.1传感器的概述和应 ...

  9. 煤气检测与报警程序C语言,基于单片机的煤气检测报警系统毕业设计.doc

    基于单片机的煤气检测报警系统毕业设计 届 别 学 号 毕业设计 基于单片机的煤气检测报警系统 姓 名 系 别. 专 业 导 师 姓 名.职 称 完 成 时 间 目录 摘要3 Abstract3 1 绪 ...

  10. 单片机4人抢答器程序C语言,基于单片机的4人抢答器.pdf

    基于单片机的4人抢答器 本文由wosulewen贡献 doc文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机 查看. 福建工程学院国脉信息学院 目录 摘要----------- ...

最新文章

  1. Fast RCNN 训练自己数据集 (2修改数据读取接口)
  2. Lucene查询索引(分页)
  3. centos 6 KVM 网卡桥接配置
  4. 20145227《信息安全系统设计基础》第一周学习总结
  5. php for循环 循环奇数,php – Foreach,每个n项的特殊处理(奇数,甚至例如)
  6. jee neow_JEE7:展望新时代
  7. [Silverlight]奇技银巧系列-2
  8. ibatis oracle function,IBATIS调用oracle function(函数)的步骤实例
  9. 关于Mybatis的几个问题
  10. 在Qt界面中显示OpenCV图像
  11. SVN使用教程总结[转]
  12. JavaScript 是一种什么样的语言
  13. 新手C#面向对象的学习2018.08.06
  14. 谈谈架构师是何种生物
  15. 昨晚,谷歌发布了一个可怕的人工智能!
  16. CAD初学者该掌握的用cad画图的基本…
  17. MySQL如何同时删除主外键关联的两张表中的数据
  18. 在linux系统上安装飞秋,linux [Fedora] 下的 飞秋/飞鸽传书
  19. 一步一步入门机器学习之一:Python(x,y)下载,安装,使用入门
  20. 互联网中所说的“旁注”是什么?

热门文章

  1. 积累资源,胜于一切项目
  2. 傻瓜进销存怎么样?收费吗?
  3. springboot简单集成quartz定时任务框架,实现用户封号定时解封问题
  4. 堆栈平衡:估计这是最详细的讲解堆栈平衡的了
  5. Galaxy S III 新广告大片:All Share功能 完败iPhone!
  6. 【20保研】四川大学计算机学院(软件学院)2019年全国优秀大学生暑期夏令营招生简章...
  7. msg邮件转eml邮件
  8. 信创操作系统--统信UOS桌面版(软件管理:应用商店、包管理器)
  9. php curl https_「PHP源码」文章原创度检测源码
  10. python谐音梗_谐音梗生成器