基于CAN总线的87C196CA在单片机串行通讯的应用

时间:2012-05-22来源:网络

3 通讯软件

  对于通过CAN 总线连接的单片机之间的通讯软件编程需要定义一系列的控制字,并在两个单片机上进行配置。即首先进行上电初始化,定义CAN控制寄存器,定义位定时寄存器选择CAN 的通讯速率,定义信息体屏蔽寄存器选择接收对象。其次对信息体进行初始化,分别定义两个信息体工作模式、发送字节数、选择CAN2.0A 或CAN2.0B 方式。其程序代码:

  / *CAN 控制器初始化*/

  can_con = 0x41 ; / *CAN 控制器CCE 位置1 ,

  则可以定义CAN 定器* /

  can_ btime0 = 0x41 ; /* 定义CAN 定时器为

  250 Kb/ s * /

  can_btime1 = 0x67 ;

  can_con = 01 ; / *允许对CAN 控制器进行软

  件初始化* /

  can_sgmsk = 0x0 ; / * 定义标准CAN 通讯格

  式的屏蔽控制字,所有位都不滤纸*/

  can_msg1con0 = 0x55 ; / * 信息体1 控制器0

  初始化* /

  can_msg1con1 = 0x55 ; / * 信息体1 控制器1

  初始化* /

  can_msg1cfg = 0x88 ; / *定义信息体1 为发

  送,发送8 字节,标准CAN 格式* /

  can_msg1id = 0xc8c8c8c8 ; / * 信息体1 标识

  寄存器初始化标识符为c8c8c8c8 ;

  can_ msg1con0 = ox95 ; / * 信息体1 控制器

  0MSGVAL 位置1 ,标明信息体1 有效* /

  can_msg2con0 = 0x55 ; / * 信息体2 控制器0

  初始化* /

  can_msg2con1 = 0x55 ; / *信息体2 控制器1

  初始化* /

  can_msg2cfg = 0x80 ; / *定义信息体2 为接

  收,接收8 字节,标准CAN 格式* /

  can_msg2id = 0xc8c8c8c8 ; / *信息体2 标识

  寄存器初始化标识符为c8c8c8c8 */

  can_ msg2con0 = ox95 ; / * 信息体2 控制器

  0MSGVAL 位置1 ,标明信息体2 有效 */

  can_con = 0x02 ; / * CAN 控制器软件初始化

  完成*/

  / *发送8 字节数据: * /

  can_msg1con1 = 0x5a ; / * CPUUPD 置1 ,使

  软件刷新数据,NEWDA T 置1 使信息置1 使信息

  体有效* /

1 2 3

关键词: CAN总线 87C196CA 串行通讯

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版