can控制器编程

作者: 罗蓁蓁 | 来源:发表于2017-10-23 12:53 被阅读3次

can控制器初始化:

1 控制器为复位模式: 模式寄存器(0x00)设为1;

reg_write8(CAN0_MOD,0x01);    //模式寄存器:复位模式

2 设置时钟分频器:设为0x08;

reg_write8(CAN0_CDR,0x08); //时钟分频寄存器:设置外部CLKOUT信号输出关

3 OCR输出控制器:设为0;

4 设置接收码过滤器寄存器;

接收码过滤器ACR

5 设置接收屏蔽寄存器;

接收码屏蔽器AMR,和ACR配合使用,和ACR对应的位为0时,输入的数据对应位和ACR对应位要匹配,如果和ACR对应位为1时,忽略。

举个例子

6 CAN波特率配置;

TBit = Tseg1+Tseg2+Tsync=(Tseg1+Tseg2+3)*Tscl

Tseg1 = tscl*(8*TSEG1.3 + 4*TSEG1.2 +2*TSEG1.1 + TSEG1.0 + 1)

Tseg2 = tscl*(4*TSEG2.2 +2*TSEG2.1 + TSEG2.0 + 1)

CAN波特率=APB总线频率/BRP分频器/(1+tBS1+tBS2)。

7 中断使能寄存器关闭所有中断;

8 配置错误警告寄存器

9 接收报文寄存器清零;

10 接收缓冲起始地址清零;

11 控制器设置正常模式:模式寄存器设为0x8;

发送报文:

1 发送中断使能(可选);

2 帧标识符赋值;

3 将发送数据写入发送数据缓冲;

4 发送报文:命令寄存器设为1;

接收报文:

1 接收中断使能;

2 中断处理程序中查询中断状态寄存器,查看是否有接收到报文;

3 如果收到报文,从接收数据缓冲中读取数据;

相关文章

  • can控制器编程

    can控制器初始化: 1 控制器为复位模式: 模式寄存器(0x00)设为1; reg_write8(CAN0_MO...

  • Arduino CAN总线实验结果

    CAN总线实现方案 CAN总线节点框架主要由三部分组成: MCU,应用控制器; CAN控制器,总线控制器,往往通过...

  • CAN总线调试步骤

    CAN总线 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和...

  • IFM控制器的通信概述

    IFM控制器的通信包括可编程控制器之间、可编程控制器与上位计算机之间以及可编程控制器与其他智能设备间的通信。可编程...

  • CAN芯片TJA1050T/CM

    TJA1050是控制器区域网络(CAN)协议控制器与物理总线之间的接口。该装置提供对总线的差分传输能力和对CAN控...

  • Qt CAN编程1- CAN总线整体介绍

    Qt - CAN总线 控制器局域网(CAN)是一种车辆总线标准,旨在允许微控制器和设备在没有主机的情况下在应用程序...

  • 2019-06-10CAN与CAN FD

    CAN 是 Controller Area Network 控制器局域网络的缩写 CAN是Bosch公司为了解决现...

  • 【CAN】嵌入式CAN总线入门篇(底层细节)

    1. 简介 CAN总线由德国BOSCH公司开发,最高速率可达到1Mbps。CAN的容错能力特别强,CAN控制器内建...

  • 【自制操作系统】(六)接受CPU外部中断--PIC简介

    可编程中断控制器PIC x86体系架构包含一个可编程的中断控制器PIC(Programmable Interrup...

  • STM32 GPIO复用及重映射

    GPIO管脚复用:32芯片内部集成了很多外设控制器,(USART,ADC,CAN等),这些外设控制器也需要通过引脚...

网友评论

    本文标题:can控制器编程

    本文链接:https://www.haomeiwen.com/subject/ftavuxtx.html