40.STM32单片机CAN通信实验学习.pptVIP

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

2.位时序及波特率(2)标号2:发送邮箱 它含有3个发送邮箱,软件可通过三个发送邮箱设置消息。发送调度程序负责决定首先发送哪个邮箱的内容。(3)标号3:验收筛选器 bxCAN提供了28个可调整/可配置的标识符筛选器组,用于选择软件所需的传入消息并丢弃其余消息。每个筛选器组由2个32为寄存器,CAN_FxR1和CAN_FxR2组成。 通过CAN_FMR寄存器,可以配置过筛选器组的位宽和工作模式,如图(4)标号4:CAN接收FIFO 硬件使用两个接收FIFO来存储传入消息。每个FIFO中有三个邮箱用于存储三条完整消息。FIFO完全由硬件管理。(5)标号5:CAN2整体控制逻辑 CAN2与CAN1是一样的,它们共用验收筛选器且由于存储访问控制器由CAN1控制,所以要使用CAN2的时候必须要使能CAN1的时钟。2.CAN配置步骤 具体步骤如下:(CAN相关库函数在stm32f10x_can.c和stm32f10x_can.h文件中)(1)使能CAN时钟,将对应引脚复用映射为CAN功能RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1,ENABLE);//使能CAN1时钟GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11; //PA11 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//上拉输入模式 GPIO_Init(GPIOA,GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12; //PA12 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//IO口速度为50MHz GPIO_Init(GPIOA,GPIO_InitStructure);(2)设置CAN工作模式、波特率等uint8_tCAN_Init(CAN_TypeDef*CANx,CAN_InitTypeDef*CAN_InitStruct);typedefstruct{uint16_tCAN_Prescaler;//uint8_tCAN_Mode;//uint8_tCAN_SJW;//uint8_tCAN_BS1;//uint8_tCAN_BS2;//FunctionalStateCAN_TTCM;//FunctionalStateCAN_ABOM;//FunctionalStateCAN_AWUM;//FunctionalStateCAN_NART;//FunctionalStateCAN_RFLM;//FunctionalStateCAN_TXFP;//}CAN_InitTypeDef;CAN_Prescaler:用于设置CAN外设的时钟分频,它可控制时间片tq的时间长度,这里设置的值最终会加1后再写入BRP寄存器位。CAN_Mode:用于设置CAN的工作模式,可设置为正常模式(CAN_Mode_Normal)、回环模式(CAN_Mode_LoopBack)、静默模式(CAN_Mode_Silent)以及回环静默模式(CAN_Mode_Silent_LoopBack)。CAN_SJW:用于置SJW的极限长度,即CAN重新同步时单次可增加或缩短的最大长度,它可以被配置为1-4tq(CAN_SJW_1/2/3/4tq)。CAN_BS1:用于设置CAN位时序中的BS1段的长度,它可以被配置为1-16个tq长度(CAN_BS1_1/2/3…16tq)。CAN_BS2:用于设置CAN位时序中的BS2段的长度,它可以被配置为1-8个tq长度(CAN_BS2_1/2/3…8tq)。CAN_TTCM:用于设置是否使用时间触发功能,ENABLE为使能,DISABLE为失能。时间触发功能在某些CAN标准中会使用到。CAN_ABOM:用于设置是否使用自动离线管理(ENABLE/DISABLE),使用自动离线管理可以

文档评论(0)

知识分享 + 关注
实名认证
文档贡献者

分享文档来源于网络和个人创作整理,仅做学习交流使用

1亿VIP精品文档

相关文档