欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    STM32F103芯片CAN总线应用程序.docx

    • 资源ID:995048       资源大小:39.98KB        全文页数:5页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    STM32F103芯片CAN总线应用程序.docx

    *Copyright(a)日期:修改记录:描述:STM32共有14组过滤器,用以对接收到的帧进展过滤。每组过滤器包括了2个可配置的32位存放器:CAN_FxR0和CAN_FxRl<.对于过滤器组,可以将其配置成屏蔽位模式,这样CAN_FxR0中保存的就是标识符匹配值,CAN-FxRl中保存的是屏蔽码,即CAN_FxRl中如果某一位为1,那么CAN,F×R0中相应的位必须与收到的帧的标志符中的相应位吻合才能通过过滤器;CAN-FxRl中为0的位表示CAN_FxR0中的相应位可不必与收到的帧进展匹配。过滤器组还可以被配置成标识符列表模式,此时CAN.F×R0和CAN_FxRl中的都是要匹配的标识符,收到的帧的标识符必须与其中的一个吻合才能通过过滤。例如:CAN-FiIterInitStructure.CAN-FiIterNumber=O;设置第一组过滤器CAN_FilterlnitStructure.CAN_FilterMode=CAN_FilterMode_ldMask;屏蔽位模式CAN_FilterlnitStructure.CAN_FilterScale=CAN_FilterScale_32bit;/32位CAN-FiIterInitStructure.CAN-FiIterIdHigh=(OXO635<<5);接收ID为635的消息11位帧ID标准帧因此左移5CAN_FilterlnitStructure.CAN_FilterldLow=OxOOOO;CAN_FilterlnitStructure.CAN_FilterMaskldHigh=Oxffff;/CAN-FiIterInitStructure.CAN-FiIterMaskIdLow=Oxffff;CAN_FilterlnitStructure.CAN_FilterFIFOAssignment=CAN_FIFOO;第一组过滤器指向FIFOOCAN-FiIterInitStructure.CAN-FiIterActivation=ENABLE;CAN_Filterlnit(&CAN_FilterlnitStructure);滤波器配置详细如下:1、对扩展数据帧进展过滤:(只接收扩展数据帧)CAN-FilterlnitStructure-CAN-FiIterIdHigh=(u32)slave_id«3)&0xFFFF0000)»16;CAN_FilterlnitStructure.CAN_FilterldLo=(u32)slave_id«3)|CANJD_EXT|CAN_RTR_DA7A)&0xFFFF;CAN_FilterlnitStructure.CAN_FilterMaskldHigh=OxFFFF;CAN_FilterlnitStructure.CAN_FilterMaskldLow=OxFFFF;(注:标准帧数据帧、标准远程帧和扩展远程帧均被过滤)2、对扩展远程帧过滤:(只接收扩展远程帧)CAN-FilterlnitStructure-CAN-FiIterIdHigh=(u32)slave_id«3)&0xFFFF0000)»16;CAN_FilterlnitStructure.CAN_FilterldLow=(u32)slave_id«3)|CAN_ID_EXT|CAN_RTR_REMOTE)&OxFFFF;CAN_FilterlnitStructure.CAN_FilterMaskldHigh=OxFFFF;CAN_FilterlnitStructure.CAN_FilterMaskldLow=OxFFFF;3、对标准远程帧过滤:(只接收标准远程帧)CAN-FiIterInitStructure.CAN-FiIterIdHigh=(u32)slave_id«21)&0xffff0000)»16;CAN_FilterlnitStructure.CAN_FilterldLow=(u32)slavejd<<21)CAN_ID_STD|CAN_RTR_REMOTE)&Oxffff;CAN_FilterlnitStructure.CAN_FilterMaskldHigh=OxFFFF;CAN_FilterlnitStructure.CAN_FilterMaskldLow=OxFFFF;4、对标准数据帧过滤:(只接收标准数据帧)CAN_FilterlnitStructure.CAN_FilterldHigh=(u32)slave_id«21)&0xffff0000)»16;CAN_FilterlnitStructure.CAN_FilterldLow=(u32)slavejd<<21)CAN_ID_STDCAN_RTR_DA7A)&0xffff;CAN_FilterlnitStructure.CAN_FilterMaskldHigh=OxFFFF;CAN_FilterlnitStructure.CAN_FilterMaskldLow=OxFFFF;5、对扩展帧进展过滤:(扩展帧不会被过滤掉)CAN-FiIterInitStrUCtUre.CAN-FiIterIdHigh=(u32)slave_id«3)&0xFFFF0000)»16;CAN_FilterlnitStructure.CAN_FilterldLow=(u32)slave_id«3)|CAN_ID_EXT)&0xFFFF;CAN_FilterlnitStructure.CAN_FilterMaskldHigh=OxFFFF;CAN_FilterlnitStructure.CAN_FilterMaskldLow=OxFFFC;6、对标准帧进展过滤:(标准帧不会被过滤掉)CAN_FilterlnitStructure.CAN_FilterldHigh=(u32)slave_id«21)&0xffff0000)»16;CAN_FilterlnitStructure.CAN_FilterldLow=(u32)slavejd<<21)CAN_ID_STD)&Oxffff;CAN-FilteiInitStructure.CAN-FiIterMaskIdHigh=OxFFFF;CAN_FilterlnitStructure.CAN_FilterMaskldLow=OxFFFC;注:SlaVeJd为要过滤的id号。*/ftinclude1,CAN.hn/*/全局变量声明/引用处externvolatileunsignedcharCan_Flag;/CAN发送数据完成flag标志/*描述:CAN初始化、CAN波特率=PCLKl/(BRP+l)*(TSl+TS2+3)*/voidlnit_CAN(void)(NVICJnitTypeDefNviCJnitStructure;GPIOJnitTypeDefGPIO_lnitStructure;CAN_lnitTypeDefCANJnitStructure;CAN_FilterlnitTypeDefCAN_FilterlnitStructure;RCjAPBlPeriPhClOCkCmd(RCJAPBlPeriph_CANl,ENABLE);/CAN时钟使能RCC,APB2PeriphClockCmd(RCC,APB2Peph,GPIOAzENABLE);/I/O口时钟使能*ConfigureCANpin:RXPAll*/GPIO_lnitStructure.GPIO_Pin=GPIO_Pin_ll;GPIO_lnitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_lnit(GPIOA,&GPIO_lnitStructure);*ConfigureCANpin:TXPA12*/GPIO_lnitStructure.GPIO_Pin=GPIO_Pin_12;GPIO_lnitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_lnit(GPIOA,&GPIO_lnitStructure);*CANregisterinit*/CAN-DeInit(CANl);CAN_Structlnit(&CAN_lnitStructure);*CANcellinit*/CANjnitstructureCANJTCM=DISABLE;制止时间触发通信模式CAN_lnitStructure.CAN_ABOM=DISABLE;CAN_lnitStructure.CAN_AWUM=DISABLE;CAN_lnitStructure.CAN_NART=DISABLE;CAN_lnitStructure.CAN_RFLM=DISABLE;CAN_lnitStructure.CAN_TXFP=DISABLE;睡眠模式通过去除sleep位来唤醒 ENABLE;报文自动重传接收溢出时,FIFO未锁定发送的优先级由标示符的大小决定CAN_lnitStructure.CAN_Mode=CAN_Mode_Normal; /CAN_Mode_LoopBack;/CAN_lnitStructure.CAN_SJW=CAN_SJW_ltq;/SJW=O波特率计算,PCLKl=36MHZ,CAN 波特率=36MHZ/(2+l)*(15+6+3)=500KbSCAN_lnitStructure.CAN_BSl=CAN_BSl_16tq;/TS1=15波特率计算,PCLK1=36MHZ,CAN 波特率=PCLKi/(BRP+l)*(TSl+TS2+3)CAN_lnitStructure.CAN_BS2=CAN_BS2_7tq; /TS2=6CAN_lnitStructure.CAN_Prescaler=3;/BRP=29/ 45=50KCAN_lnit(CANlz&CAN_lnitStructure);* CAN filter init */CAN_FilterlnitStructure.CANeFiIterNumber=O;过滤器CAN_FilterlnitStructure.CAN_FilterMode=CAN_FilterMode_ldMask; 模式.CAN_FilterlnitStructure.CAN_FilterScale=CAN_FilterScale_32bit;CAN_FilterlnitStructure.CAN_FilterldHigh=OxOOOO;CAN_FilterlnitStructure.CAN_FilterldLow=OxOOOO;CAN_Filt

    注意事项

    本文(STM32F103芯片CAN总线应用程序.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开