历史上的今天
返回首页

历史上的今天

今天是:2025年08月12日(星期二)

正在发生

2018年08月12日 | stm32F105的can2问题

2018-08-12 来源:eefocus

最近在做can方面的要用到can2,调试了好久没有调通,一直是能发送数据不能正常接收,检查了滤波配置开始都没有发现问题,后面仔细看stm32的使用手册,最后发现在单独使用can2的时候必须开启can1的时钟,否则收不到数据,且过滤器也要设置从14开始,在stm32参考手册有这样一段话

双CAN
● CAN1:是主bxCAN,它负责管理在从bxCAN和512字节的SRAM存储器之间的通信
● CAN2:是从bxCAN,它不能直接访问SRAM存储器
● 这2个bxCAN模块共享512字节的SRAM存储器(见图195)

可见必须要开启can1的时钟这是依据,下面贴一下配置的源码,方便初学者参考,有什么不对的请指正,用的是stm32f105的芯片,3.5的库函数

void CAN2_Config(void)
{
      GPIO_InitTypeDef        GPIO_InitStructure;

     CAN_InitTypeDef CAN_InitStructure;

     CAN_FilterInitTypeDef  CAN_FilterInitStructure;

//can时钟配置
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
//can管脚复用
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 
        GPIO_PinRemapConfig(GPIO_Remap_CAN2,ENABLE);
//引脚配置
       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
       GPIO_Init(PORTX(CAN_RX), &GPIO_InitStructure);

      GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_Init(GPIOB, &GPIO_InitStructure);   

//波特率配置

CAN_InitStructure.CAN_SJW=CAN_SJW_1tq; //1-4
        CAN_InitStructure.CAN_BS1=CAN_BS1_9tq; //1-16
        CAN_InitStructure.CAN_BS2=CAN_BS2_2tq; //1-8
        CAN_InitStructure.CAN_Prescaler=6;          //500k
CAN_InitStructure.CAN_TTCM=DISABLE; 
CAN_InitStructure.CAN_ABOM=ENABLE; 
CAN_InitStructure.CAN_AWUM=ENABLE; 
CAN_InitStructure.CAN_NART=DISABLE; 
CAN_InitStructure.CAN_RFLM=DISABLE;
CAN_InitStructure.CAN_TXFP=DISABLE;
CAN_InitStructure.CAN_Mode=CAN_Mode_Normal; 
CAN_Init(CAN2,&CAN_InitStructure);

//过滤器配置
CAN_FilterInitStructure.CAN_FilterNumber=14;
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_16bit;
CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;
CAN_FilterInitStructure.CAN_FilterIdLow=ID;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFC;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=Mask;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
CAN_FilterInit(&CAN_FilterInitStructure);
}


推荐阅读

史海拾趣

FLIR公司的发展小趣事

FLIR公司成立于1978年,总部位于美国俄勒冈州波特兰市。起初,公司专注于高性能、低成本机载应用红外热成像系统的研发与生产。在那个时代,红外热成像技术主要应用于军事领域,成本高昂且难以普及。然而,FLIR凭借其技术创新,成功打破了这一局面,推出了性价比极高的机载红外热成像系统。这些系统能够在完全漆黑的环境或恶劣天气条件下,透过烟雾和阴霾等空气污染物清晰成像,极大地提升了军事侦察和夜间作战的能力。这一突破不仅让FLIR在军事领域崭露头角,也为后续的商业应用奠定了坚实基础。

Delphi Connection Systems公司的发展小趣事

随着市场的不断发展,Delphi Connection Systems公司意识到单靠自身的力量难以在激烈的市场竞争中立足。于是,公司积极寻求与其他企业的战略合作,通过资源共享、优势互补,共同开拓市场。公司与一家知名的汽车制造商建立了战略合作关系,为其提供高质量的连接器产品,从而成功进入了汽车电子行业市场。

DBLECTRO公司的发展小趣事

1997年,迪贝电子在上海正式成立,标志着这家专注于环境感知技术和气体检测及分析领域的创新企业正式进入中国市场。当时,中国的环保法规日益严格,对气体排放的监控和管理要求也不断提高。迪贝电子凭借其在该领域的深厚积累和技术实力,迅速在市场上推出了一系列高质量的气体检测和分析仪器。这些产品以其准确性、稳定性和易用性受到了用户的广泛好评,为迪贝电子在中国市场的快速发展奠定了坚实的基础。

Defense Supply Center Columbus公司的发展小趣事

在电子行业,人才是企业最宝贵的财富。Defense Supply Center Columbus公司高度重视人才战略的实施。公司积极引进和培养各类人才,建立起一支高素质、专业化的团队。公司注重员工的培训和发展,为员工提供良好的工作环境和职业发展机会。同时,公司还建立了完善的激励机制和绩效考核体系,激发员工的工作积极性和创造力。这些人才战略的实施,为公司的发展提供了有力的人才保障和智力支持。

请注意,以上故事均为虚构内容,旨在展示Defense Supply Center Columbus公司可能的发展路径和故事框架。实际情况可能因公司具体情况和市场环境而有所不同。

Connector City公司的发展小趣事

随着全球环保意识的不断提高,电子行业对绿色环保的要求也越来越高。Connector City公司积极响应国家环保政策,加强了对生产过程的环保管理。公司引进了先进的环保设备和技术,减少了生产过程中的废弃物排放和能源消耗。同时,公司还注重产品的环保性能设计,推出了多款符合环保标准的新型连接器产品。通过坚持绿色环保和可持续发展理念,公司赢得了社会的广泛赞誉和支持。

这五个故事仅是对Connector City公司可能发展路径的一种虚构描述,实际情况可能因市场变化、公司策略调整等多种因素而有所不同。在实际发展中,公司需要根据自身情况和市场环境做出灵活的调整和决策。

遨格芯微(AGM)公司的发展小趣事

除了在智能手机和IoT市场取得突破外,AGM还深耕工业和消费类市场。公司自主研发并量产的可编程逻辑SoC产品系列广泛应用于工业和消费类市场,满足了客户对高容积率、低成本、高品质的市场需求。通过不断的技术创新和产品优化,AGM在工业和消费类市场逐渐形成了自己的竞争优势,并赢得了越来越多客户的认可和信赖。

问答坊 | AI 解惑

10kv双电源供电标准是什么

10kv双电源供电标准是什么?…

查看全部问答>

寻找无线解决方案

目前我公司有两台行车,共用一条轨道,如果操作不注意容易发生相碰事故,所以想寻找无线的仪表进行技改,实现两台行车在小于设定的安全距离时可以使某继电器吸合,保护停车,防止碰撞事故。我邮箱lqhconch@163.com或QQ874081958…

查看全部问答>

单片机保密控制系统

#include #include typedef unsigned int uint; typedef unsigned char uchar; #define KeyPort P1 uchar xdata cw _at_ 0xfcff; uchar xdata dw _at_ 0xfdff; uchar xdata cr _at_ 0xfeff; uint PasswordType[8]={0,0,0,0,0,0,0,0,}; v ...…

查看全部问答>

北京千家悦网络科技有限公司招聘信息

公司简介: 北京千家悦网络科技有限公司是一家专门从事嵌入式浏览器开发的高科技企业,公司07年在北京成立,处在中关村繁华的商业地带,已经稳步发展到成长阶段,公司拥有一批技术精湛的研究浏览器精英,造就了“千家悦系列浏览器”各方面的优势, ...…

查看全部问答>

各种MSP430仿真器支持芯片家族列表

这个表是今天从资料堆里翻出来的,找了很久,看了这个表终于知道什么种类的仿真器支持哪些系列的芯片了,特意分享给大家当做迟来的国庆礼物吧   最新可靠消息launch pad支持所有支持SBW的单片机系列,包括F2XXX\\F5XX\\CC430\\G2XXX等 ...…

查看全部问答>

stm32can发送错误计数TEC=0xff?

大家好,我使用stm32can初始化时是,正常模式,发送不成功就重新发送。 当其他节点的发送数据量较小时,系统工作正常。 但是其他节点数据量大,stm32就发送不出去了,debug发现,发送邮箱3个都是满的,邮箱0出现CAN_TSR的TERR0被置位。同时C ...…

查看全部问答>

IAT Embedded Workbench For ARM v5.50谁有吗,帮忙发一份给我,谢谢了!

 IAT Embedded Workbench For ARM v5.50谁有吗,帮忙发一份给我,谢谢了!邮箱631212058@qq.com…

查看全部问答>

怎么用FPGA显示数字图片?

怎么用FPGA显示数字图片?请教…

查看全部问答>

【信号处理】FPGA信息处理核心IEEE论文全集

话不多说~直接上资料~大家顶起啊~  …

查看全部问答>

MSP430G2231 Timer A

msp430g2231.h头文件中 #define MC1                 (0x0020u)  /* Timer A mode control 1 */#define MC0       &n ...…

查看全部问答>