IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> DEVKIT-mpc5744p配置can通信 -> 正文阅读

[嵌入式]DEVKIT-mpc5744p配置can通信

DEVKIT-mpc5744p配置can通信

软件:S32 Design Studio for Power Architecture Version 2.1
新建工程,配置与生成代码
本文工程下载

can协议

  1. CAN: 控制器局域网络, 异步通信, CAN_H & CAN_L构成一组差分信号线
  2. 闭环总线网络: (ISO11898)标准高速, 短距离闭环网络, 最长40m, 最快1Mbps, 两端有120 Ω \Omega Ω电阻
  3. 开环总线网络: (ISO11519-2)标准低速, 长距离开环网络, 最长1km, 最快125kbps, 两线独立不闭环, 各串2.2 k Ω k\Omega kΩ电阻
  4. 不对节点编码, 对内容编码, 可挂载多节点, 负载足够理论上数量不限, 可通过中继器增强负载
  5. 节点: CAN控制器+CAN收发器

    STM32的CAN片上外设即通讯节点的控制器,需要外接收发器(TJA1050)
  6. 差分信号: 逻辑1(隐形电平), 逻辑0(显性电平)
  7. CAN报文: 对数据, 操作命令, 同步信号进行打包
    1. 数据帧: 传输起始标签+片选标签+控制标签+原始数据段+CRC校验标签+应答标签+传输结束标签
      1. 数据帧: 节点向外传送数据
      2. 遥控帧: 向远端节点请求数据
      3. 错误帧: 向远端节点通知校验错误, 请求重发上一个数据
      4. 过载帧: 通知远端节点:本节点尚未准备好接收
      5. 帧间隔: 将数据帧及遥控帧与前面的帧分离开
    2. 数据帧结构
      1. 帧起始: SOF段, 1位,
    3. 仲裁: 有两个报文要发送, 总线根据哪个数据包能被传输, 发送报文时先出现隐形电平则失去对总线占有权, 仲裁段值越小, 优先级越高
  8. 模式
    1. 正常模式: 可收发
    2. 静默模式: 只能向总线发送隐性位, 监测总线数据
    3. 回环模式: 输出->输入 & 总线, 不能接收总线, 用于自检
    4. 回环静默模式: 自我检查, 不干扰总线

配置

  1. component library中双击添加can pal模块
    在这里插入图片描述

  2. 再在components中双击这个模块,进入配置界面,完成配置
    在这里插入图片描述

  3. ctrl+s保存, 生成代码
    在这里插入图片描述

  4. 添加发送邮箱和接受邮箱、报文id

    #define TX_MAILBOX  (1UL)
    #define TX_MSG_ID   (0x300)
    #define RX_MAILBOX  (0UL)
    #define RX_MSG_ID   (0x301)
    
  5. 可以开启定时器中断, 中断发送, 也可以在while延时循环发送

    CAN_Init(&can_pal1_instance, &can_pal1_Config0);    //  初始化 
    
    uint8_t CanCount = 0;   // can计数
    uint8_t SendBuff[8] = {1,2,3,4,5,6,7,8};    //  发送内容
    uint8_t ReceiveCount = 0;   //  接收计数, 可忽略
    
    /*** 发送 ***/
    SendBuff[7] = CanCount; //  末位自加1
    can_buff_config_t buffCfg =  {
            .enableFD = false,
            .enableBRS = false,
            .fdPadding = 0U,
            .idType = CAN_MSG_ID_STD,
            .isRemote = false
    };
    /* Configure TX buffer with index TX_MAILBOX*/
    CAN_ConfigTxBuff(&can_pal1_instance, TX_MAILBOX, &buffCfg);
    /* Prepare message to be sent */
    can_message_t message = {
        .cs = 0U,
        .id = 0x300,    //  发送id, 即TX_MSG_ID
        .data[0] = SendBuff[0],
        .data[1] = SendBuff[1],
        .data[2] = SendBuff[2],
        .data[3] = SendBuff[3],
        .data[4] = SendBuff[4],
        .data[5] = SendBuff[5],
        .data[6] = SendBuff[6],
        .data[7] = SendBuff[7],
        .length = 8U    //  发送数据长度
    };
    CanCount++; //  末位自加1, 可不加
    /* Send the information via CAN */
    CAN_Send(&can_pal1_instance, TX_MAILBOX, &message); //  发送
    
  6. while中循环接收

    while(1)
    {
        can_message_t recvMsg;
        /* Start receiving data in RX_MAILBOX. */
        CAN_Receive(&can_pal1_instance, RX_MAILBOX, &recvMsg);
        /* Wait until the previous FlexCAN receive is completed */
        while(CAN_GetTransferStatus(&can_pal1_instance, RX_MAILBOX) == STATUS_BUSY);
        /* Check the received message ID and payload */
        if(recvMsg.id == 0x301)
        {
            PINS_DRV_TogglePins(PTC,(1 << 13));
            SendBuff[ReceiveCount] = recvMsg.data[0];
            ReceiveCount++;
            if(ReceiveCount > 6)
            {
                ReceiveCount = 0;
            }
        }
    }
    
  7. 编译, debug

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:39:38  更:2022-07-17 16:40:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:01:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计