STM32的CAN模块测试说明.doc_第1页
STM32的CAN模块测试说明.doc_第2页
STM32的CAN模块测试说明.doc_第3页
STM32的CAN模块测试说明.doc_第4页
STM32的CAN模块测试说明.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CAN模块测试1、功能描述bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B。它的设计目标是以最小的CPU负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。2、主要特性l 支持CAN协议2.0A和2.0B主动模式l 波特率最高可达1兆位/秒l 支持时间触发通信功能发送l 3个发送邮箱l 发送报文的优先级特性可软件配置l 记录发送SOF时刻的时间接收l 3级深度的2个FIFOl 14个位宽可变的过滤器组-由整个CAN共享l 标识符列表l FIFO溢出处理方式可配置l 记录接收 SOF时刻的时间可支持时间触发通信模式l 禁止自动重传模式l 16位自由运行定时器l 定时器分辨率可配置l 可在最后2个数据字节发送时间管理l 中断可屏蔽l 邮箱占用单独1块地址空间,便于提高软件效率发送邮箱l 共有3个发送邮箱供软件来发送报文。发送调度器根据优先级决定哪个邮箱的报文先被发送。接收过滤器l 共有14个位宽可变/可配置的标识符过滤器组,软件通过对它们编程,从而在引脚收到的报文中选择它需要的报文,而把其他报文丢弃掉。接收FIFOl 共有2个接收FIFO,每个FIFO都可以存放3个完整的报文。它们完全由硬件来管理3、工作模式4、 软件代码/* 版权 : -长沙源享教育 - * 文件 :can.c* 版本 :V1* 描述 :CAN总线* 作者 : 霍小波* 时间 :2011-7-5* 说明 :CAN总线,让CAN工作在回环测试模式下,来测试CAN总线是否正常。 在CAN发送邮箱中,发送2个数据的数据帧,看接收FIFO中是否接收到这两个数据-修改记录-* 修改功能 :* 修改时间 :* 修改作者 :* 遗留问题 :*/#includestm32f10x_lib.h#define GPIO_CAN GPIOB#define GPIO_Pin_CAN_RX GPIO_Pin_8#define GPIO_Pin_CAN_TX GPIO_Pin_9#define GPIO_Remap_CAN GPIO_Remap1_CANtypedef enum FAILED = 0, PASSED = !FAILED TestStatus;/* 函数名称:TestStatus CAN_Polling_Configuration(void)* 功能描述:采用查询的方式来测试CAN总线* 入口参数:无* 出口参数: TestStatus 测试的状态码,若发送与接收的数据一致返回1 否则,返回0 */TestStatus CAN_Polling_Configuration(void)GPIO_InitTypeDefGPIO_InitStructure;CAN_InitTypeDefCAN_InitStructure;CAN_FilterInitTypeDefCAN_FilterInitStructure;CanTxMsgTxMessage;CanRxMsgRxMessage;u8 TransmitMailbox = 0;u32 i;/* * CAN 总线的引脚配置*/ /* Configure CAN pin: RX */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_CAN_RX; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIO_CAN, &GPIO_InitStructure); /* Configure CAN pin: TX */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_CAN_TX; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIO_CAN, &GPIO_InitStructure); GPIO_PinRemapConfig(GPIO_Remap_CAN , ENABLE); /* * CAN 总线的配置*/ /* CAN register init */ CAN_DeInit(); CAN_StructInit(&CAN_InitStructure);CAN_InitStructure.CAN_TTCM = DISABLE; /时间触发通讯模式CAN_InitStructure.CAN_ABOM = DISABLE; /自动离线管理模式CAN_InitStructure.CAN_AWUM = DISABLE; /自动唤醒模式CAN_InitStructure.CAN_NART = DISABLE; /非自动重传输模式CAN_InitStructure.CAN_RFLM = DISABLE; /接收FIFO锁定模式CAN_InitStructure.CAN_TXFP = DISABLE; /发送FIFO优先级CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack;/回环模式,自发自收CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; /同步跳跃1个时间单元CAN_InitStructure.CAN_BS1 = CAN_BS1_8tq; /时间段1为8个时间单元CAN_InitStructure.CAN_BS2 = CAN_BS2_7tq; /时间段2为7个时间单元CAN_InitStructure.CAN_Prescaler = 5; /分频值CAN_Init(&CAN_InitStructure);/* * CAN 总线的过滤设置*/CAN_FilterInitStructure.CAN_FilterNumber = 0; /指定初始化的过滤器编号为0 (013)CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;/标识符屏蔽位模式CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;/1个32位的过滤器CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; /设定过滤器的标识符(32位为其高段,16位为第一个)范围是0x00000xffffCAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; /设定过滤器的标识符(32位为其低段,16位为第二个)范围是0x00000xffffCAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;/设定过滤器屏蔽标识符或者过滤标识符CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;/设定过滤器屏蔽标识符或者过滤标识符CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FilterFIFO0;/过滤器FIFO指向过滤器0 CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;/使能过滤器CAN_FilterInit(&CAN_FilterInitStructure);/* * CAN 总线的发送设置*/TxMessage.StdId = 0x11;/标准标识符 /TxMessage.ExtId = /扩展标识符TxMessage.IDE = CAN_ID_STD;/使用标准标识符 TxMessage.RTR = CAN_RTR_DATA; /数据帧TxMessage.DLC = 2; /设定传输消息的帧长度为2TxMessage.Data0 = 0xCA; /数据1TxMessage.Data1 = 0xFE; /数据2TransmitMailbox = CAN_Transmit(&TxMessage);i=0;while(CAN_TransmitStatus(TransmitMailbox) != CANTXOK) & (i != 0xFF)i+;i=0;while(CAN_MessagePending(CAN_FIFO0) 1) & (i != 0xFF)i+;/* * CAN 总线的接收设置*/RxMessage.StdId = 0x00;/设定标准标识符RxMessage.IDE = CAN_ID_STD; /使用标准标识符 RxMessage.DLC = 0; /用来设定待传输的帧长度 RxMessage.Data0=0x00; /数据1 RxMessage.Data1=0x00; /数据2CAN_Receive(CAN_FIFO0,&RxMessage); if (RxMessage.StdId!=0x11) /发送和接收不一致,返回FAILED return FAILED; if (RxMessage.IDE!=CAN_ID_STD) /发送和接收不一致,返回FAILE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论