网站大量收购独家精品文档,联系QQ:2885784924

STM32的CAN通信实现(代码 图示).pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32的CAN通信实现(代码 图示)

STM32 的CAN 通信实现(代码+图示) 1.CAN 是控制器局域网络(Controller Area Network, CAN)的简称 (理论知识不做讲解了,太多了) 2.芯片选用:TJA1050 差分信号输入, 这里的显性电平CANH 和CANL 压差是2V 左右,逻辑上表示“0” 两线之间没有压差CANH 和CANL 都是2.5V 左右,表示逻辑“1” (二)实现代码 1. /* 配置CAN 模块*/ CAN_Config(); void CAN_Config(void) { CAN_GPIO_Config(); //此处用PB8/PB9 CAN_NVIC_Config(); CAN_Mode_Config(); CAN_Filter_Config(); } 2.对于CAN_NVIC_Config(); 看下CAN 的中断分类 static void CAN_NVIC_Config(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Configure one bit for preemption priority */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /*中断设置*/ NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;//CAN1 RX0 中断 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//抢占优先级0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(NVIC_InitStructure); } 3.CAN_Mode_Config(); //CAN 不像I2C 那样有片选,他背身有许多协议,也要进行选择, 所以对应代码的结构体也多(集体可看CAN 手册) 4.CAN_Filter_Config(); 过滤器程序 看下CAN 的主要框图(M3 里面的CAN ) M3 里面有三个发送邮箱,把要发送的数据打包成报文,然后把它发送到CAN 网络总线上; 接收器 先经过滤器,M3 里面有14 个过滤器,过滤的时候是根据报文的ID 来过滤的,ID 相同的话,才能过去(相当于一个闸门) 接收到数据后(这里有两个FIFO ,0、1 ),我们的实验用的是 放到FIFO 的Mailbox 0; 代码写法根基三部分: 1.Tx Mailboxes 2.Acceptance Filters 3.Receive FIFO STM32 的 ID 过滤方式有两种,一种为标识符列表模式,它把要接收报文 的 ID 列成一个表,要求报文 ID 与列表中的某一个标识符完全相同才可以接 收,可以理解为白名单管理。(说白了就是有一个标志位相同,然后就联通了) 另一种称为标识符屏蔽模式,它把可接收报文 ID 的某几位作为列表,这几 位被称为屏蔽位,可以把它理解成关键字搜索,只要屏蔽位(关键字)相同,就 符合要求。即这种模式只要求报文 ID 的屏蔽位与列表中标识符相应屏蔽位相 同 ,报文就被保存到接收 FIFO。(标志位的某几位检验,相同的话就通过了) 2.什么叫做报文(就是帧) 在原始数据段的前面加上传输起始标签、片选(识别)标签、控制标签,在 数据的尾段加上 CRC 校验标签、应答标签和传输结束标签。把这些内容按特定 的格式打包好,就可以用一个通道表达各种信号了,各种各

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档