当前位置: 首页 > news >正文

杭州做网站公司排名百度网页下载

杭州做网站公司排名,百度网页下载,上海求职网招聘网,做网站常见问题模板PIC18F45K80的CAN使用过程遇到一些问题,记录一下,主要是代码的理解。 在MPLAB X中配置工程: 1,在MCC中添加ECAN外设 2,CAN通讯有波特率的概念,整一个CAN网络需要运行在同一个速率。这里我们把他配置到12…

PIC18F45K80的CAN使用过程遇到一些问题,记录一下,主要是代码的理解。

在MPLAB X中配置工程:

1,在MCC中添加ECAN外设
在这里插入图片描述
2,CAN通讯有波特率的概念,整一个CAN网络需要运行在同一个速率。这里我们把他配置到125kbps。其余可以保持默认。
在这里插入图片描述
3,添加了一个串口USART2作为打印输出,方便调试。点击MCC的生成按钮生成代码,我们直接对代码进行分析。
在这里插入图片描述


CAN基本概念:

CAN发送的帧分为标准帧和拓展帧,简单说区别就是拓展帧长一点。所以代码上需要做不同处理。简单描述一下。

CAN标准帧格式

CAN 标准帧信息为11个字节(3 + 8),包括两部分:信息和数据部分。前3个字节为信息部分。

字节1为帧信息。第7位(FF)表示帧格式,在标准帧中,FF=0;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC表示在数据帧时实际的数据长度。

字节2、3为报文识别码,11位有效。

字节4~11为数据帧的实际数据,远程帧时无效。

CAN扩展帧格式

CAN 扩展帧信息为13个字节(5 + 8),包括两部分,信息和数据部分。前5个字节为信息部分

字节1为帧信息。第7位(FF)表示帧格式,在扩展帧中,FF=1;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC 表示在数据帧时实际的数据长度。

字节2~5为报文识别码,其高29位有效。

字节6~13数据帧的实际数据,远程帧时无效


代码实现

CAN的数据实际收发和串口很相似,可以是轮询接收,直接发送。也可以是中断实现。

CAN相关的定义:
因为CAN有自己的帧格式,所以直接定义好了数组和联合体,用来方便填入数据。
在ecan.h文件中:
在这里插入图片描述

------------------------------发送------------------------------:

数据的填充如下图,重点:
1、idType需要区分标准帧还是拓展帧;
2、拓展帧因为存在EID,所以需要将SID进行移位,左移18这个操作是固定的。标准帧不需要额外移位 ,直接将SID填充到id中;
3、dlc是长度,根据实际填写就好;

在这里插入图片描述
做演示,这里没有填充数据
帧填充完毕,直接调用CAN_transmit() 发送就可以

在这里插入图片描述
状态寄存器如下图,通过查询bit7,来得知发送完成状态,这个和串口的发送很相似:
在这里插入图片描述

可以通过在主循环中监控CAN错误标志:
在这里插入图片描述
其中CAN通讯存在应答,如果总线上面没有能够接收节点,这一帧就无法发送成功,CAN外设会一直尝试重新发送。

------------------------------接收------------------------------

在这里插入图片描述
查询RXBxCON寄存器的bit7,如果为一,直接去调用CAN_receive()获取数据,数据读取完毕之后,清除RXFUL标志。
在这里插入图片描述
同样的,自己去解析数据帧就可以了,先判断是标准帧还是拓展帧。


这样就可以实现最基本的数据收发了,当然CAN还有很多的功能,比如过滤、错误产生等等,这个可以大家自己研究了。

http://www.dtcms.com/a/399818.html

相关文章:

  • 学习优秀的项目 —— MST++
  • 建设网站需要的ftp资源石家庄房产网
  • 开发避坑指南(55):基于路由守卫的Vue2/Vue3 Tab页查询状态保留方案
  • 如何设计一个版本统一的前端接入层来适配多版本验证码
  • 电子商务网站开发问题研究山西手机网站建设
  • 【Vue3】 - 解析Markdown内容生成侧边栏Toc目录索引
  • wordpress 用法成都优化网站厂家
  • 从零开始循序渐进地学习Conda环境管理
  • 网站服务费怎么做分录四川城乡与建设厅网站
  • uniapp 打包安卓apk。同时安装正式和测试的apk。
  • 中和华丰建设有限责任公司网站c 能用来做网站吗
  • 使用python的加权Jaccard分析流程
  • 网站开发需要掌握哪些技术wordpress登录链接
  • 学习Java四十五天
  • 从android compose动画研究带接收者的函数类型(Receiver Function Type)
  • 佛山网站建设玲念建站平面设计和电商设计
  • 南通网站建设规划书深圳家居网站建设公司
  • 大模型agent综述:A Survey on Large Language Model based Autonomous Agents
  • 重庆网站设计最加科技网站开发怎么学
  • 【淘宝API接口】如何获取淘宝商品的详细信息?
  • 突破限制!AI智能体网页交互利器:Playwright MCP与Bright Data Web MCP
  • IT 疑难杂症诊疗室:从现象到根因的系统化故障排查指南
  • 网站怎么做子网页flash网站开发用什么语言
  • 做户外运动的网站广州做网站公司排名
  • 公用通信网
  • 上海外贸营销网站建设python3的网站开发
  • 新网站制作市场重庆网站设计建设
  • 大模型灾难性的原因和缓解方法?
  • 【深度学习-Day 49】注意力机制:让模型像人一样“划重点”,告别Seq2Seq信息瓶颈
  • 网站建设团队管理模板开发者导航