历史上的今天
返回首页

历史上的今天

今天是:2024年09月30日(星期一)

正在发生

2019年09月30日 | STM32F105 CAN总线数据收发调试

2019-09-30 来源:eefocus

STM32F105 CAN通讯端口:

STM32F105有2路CAN,不是两路独立的CAN,而是一个主端口CAN1和一个从端口CAN2,其隐含的意思就是如果只使用1路CAN进行通讯,可以使用主端口CAN1,此时可以忽略CAN2,但是如果只用从端口CAN2进行通讯的话,需要先打开CAN1的时钟,否则CAN2也不能正常工作,如果使用两路CAN同时工作时,需要注意CAN1复位时,CAN2也被复位了,所以如果在CAN2初始化之后CAN1复位,则CAN2还有重新初始化;


调试CAN总线的发送:

运行发送程序,如果TX引脚有输出信号脉冲,说明引脚的配置正确,如果引脚没有输出脉冲,需要检查GPIO的配置;用示波器检测TX引脚的信号波形,查看波特率是否正确,如果不正确需要修改寄存器的参数配置;用示波器查看CAN总线上的通讯信号是否正常;使用CAN收发模块接收STM32F105所发送的数据,应该能正常收到数据。到这里基本上CAN发送的功能就调试完成了,剩下的就是细节上的调整了;


调试CAN总线的接收:

可以先去掉CAN总线物理层的芯片,将RX引脚分别接低电平/高电平,然后查看寄存器CAN_MSR中的RX和SAMP位,是否与RX接的电平一致,如果一致说明引脚配置正确,否则需要检查引脚的配置,例如IO端口号、时钟允许、重映射等配置;焊接上物理层转换芯片,使用CAN收发模块发送数据,STM32F105接收,因为发送已经正常,所以波特率肯定是正确的;CAN收发模块连续发送数据,查看寄存器CAN_RF01和CAN_RF1R寄存器,看其中的FIFO数量是否变化,若随着接收的数据增加并溢出,则说明过滤寄存器配置正确,如果一直为0不变化,说明过滤寄存器配置不对,STM32F105从RX引脚接收到的数据首先进入过滤寄存器,通过过滤寄存器再定向到FIFIO0或FIFO1,所以即使不想使用过滤器过滤数据的话,也需要对CAN1和CAN2分别配置至少一个过滤寄存器,只是在过滤的规则上设置成不过滤任何数据,否则没有过滤寄存器到FIFO的定向,数据就不能到达FIFO中,STM32F105复位后默认的0-13号过滤寄存器可以定向到CAN1的FIFO0或FIFO1,14-27号过滤寄存器定向到CAN2的FIFO0或FIFO1,如果需要改变这个边界的话,可以使用 CAN_SlaveStartBank(n);进行调整边界,但要注意,边界之前的过滤寄存器用于CAN1,边界之后的过滤寄存器用于CAN2;FIFO能够接收到数据,就可以开启中断了,开启CAN_IER中相应的中断,并设置中断优先级,就可以利用中断接收CAN数据了,通过设置合理的过滤寄存器,可以分别处理CAN1的FIFIO0、FIFO1以及CAN2的FIFO0和FIFO1中的数据。

推荐阅读

史海拾趣

Exel Microelectronics Inc公司的发展小趣事

在XXXX年,Exel Microsystems Inc公司成功进入国际市场。公司凭借优质的产品和服务,赢得了国外客户的认可和信任。为了更好地服务国际市场,Exel还在多个国家和地区设立了分支机构和研发中心。这一市场拓展的成功不仅为公司带来了更多的商业机会,也提升了公司的国际知名度和影响力。

Hengstler GmbH公司的发展小趣事

XXXX年,Exel Microsystems Inc公司意识到了品质管理对于企业发展的重要性。于是,公司开始引进先进的品质管理理念和体系,加强了对产品从研发到生产的全过程控制。通过严格的品质管理,Exel的产品质量得到了显著提升,客户满意度也随之提高。这一举措不仅增强了公司的市场竞争力,也为公司的长期发展奠定了坚实基础。

Electric Imp Inc.公司的发展小趣事

随着第一款产品的成功,Electric Imp Inc.公司开始积极拓展市场。公司与多家知名厂商建立了合作关系,将物联网设备管理平台应用于智能家居、工业自动化、智慧城市等领域。同时,公司还加强了与高校、科研机构的合作,共同研发新技术、新产品。这些努力使得公司在物联网领域的影响力逐渐扩大。

AC Interface Inc公司的发展小趣事

ABC Electronics Inc. 深知人才是企业发展的核心动力。因此,公司高度重视人才培养和引进工作。一方面,公司建立了完善的人才培养机制,通过内部培训、轮岗锻炼等方式提升员工的技能和素质;另一方面,公司积极引进具有创新精神和国际视野的高端人才,为公司的技术创新和市场拓展提供了有力支撑。这些人才战略的实施,为公司的长远发展奠定了坚实基础。

这些故事虽然是以虚构的ABC Electronics Inc.为例,但其中的情节和策略在电子行业中是普遍存在的。如果AC Interface Inc是一个真实存在的公司,它的发展轨迹可能也会涉及这些方面。当然,具体的故事还需要根据公司的实际情况来创作。

登丰微(GSTEK)公司的发展小趣事

歌普电子不仅注重产品的品质和技术创新,还非常重视客户服务。公司始终秉承“用心服务”的理念,为客户提供全方位的售前、售中和售后服务。无论是产品咨询、技术支持还是售后保障,歌普都能迅速响应并满足客户的需求。这种高效、专业的服务赢得了客户的高度评价和信赖,也为公司的持续发展奠定了坚实的基础。

FCI connector [富加宜连接器]公司的发展小趣事

自FCI成立以来,公司凭借其专业的设计、精密的制造工艺和创新精神,迅速在全球连接器市场上崭露头角。通过不断的技术创新和产品升级,FCI逐渐成为了全球领先的连接器制造商之一。其产品线涵盖了通讯、电源、医疗等多个领域,为全球众多知名品牌提供了优质的连接器解决方案。

问答坊 | AI 解惑

一个较完整的74HC595显示资料,程序精炼、易懂

74HC595资料,显示电路及汇编程序。 [ 本帖最后由 laobo 于 2009-7-10 10:23 编辑 ]…

查看全部问答>

参加过竞赛的,留个脚印~~

本帖最后由 paulhyde 于 2014-9-15 08:57 编辑 来说说你都参加过什么竞赛吧? 如今这世道,太多的电子竞赛了,搞得头晕 呵呵 [ 本帖最后由 clark 于 2010-2-28 02:40 编辑 ]  …

查看全部问答>

请教:安装wince5.0时候出现回滚是怎么回事

我在安装wince5.0的时候,马上要安装完的时候出现了 回滚现象。导致安装不成功,请问是什么原因呢?…

查看全部问答>

检测当前地址页是否为别名

一个内存检查的例程如下: for(i = 0; i < NUM_MEM_AREAS; i++) memory_map[i].used = 0; /* first write a 0 to all memory locations */ for(addr = MEM_START; addr < MEM_END; addr += PAGE_SIZE) * (u32 *)addr = 0; for(i = 0, addr ...…

查看全部问答>

请教老师们:自已写的winCE驱动程序被加载后,马上又被卸载了?

我在Platform   Builder下编写了一个很简单的LED驱动程序,就包含了DllMain,LED_Init,LED_Open,LED_DeInit,LED_close,LED_Powerup,LED_Powerdown等等函数的操作。然后在release目录下的Platform.reg的\\drivers\\builtIn当中添加了该驱动 ...…

查看全部问答>

鸿业同行科技有限公司招聘员工!!!!

鸿业同行科技有限公司招聘员工!!!!    鸿业科技成立于1992年,专业从事计算机软件的开发,服务于工程类CAD设计领域和城市信息化建设领域。现拥有员工百名,设有北京鸿业同行科技有限公司、上海鸿业同行信息科技有限公司、洛阳高新鸿 ...…

查看全部问答>

【求助】请问有没有那位用过epson的S1D13700这个LCD控制芯片

请问有没有那位用过epson的S1D13700这个LCD控制芯片,我连初始化都不知道成功没有,请达人赐教。…

查看全部问答>

请问STM32通用定时器中比较/捕获寄存器设置好了,从哪里输出?

                                 请问STM32通用定时器中比较/捕获寄存器设置好了,从哪里输出?在原理图上找不到输出口…

查看全部问答>

【MP430共享】利用MSP430的捕获比较模块实现UART功能

为了满足单片机系统设计中对多个串口的需要, 文中使用 T I 公司 MS P 4 3 0型单片机的捕获/ 比较模块实现 U A R T功能. 文中详细介绍了 U A R T的通信方式, 并根据 M S P 4 3 0型单片机捕获/ 比较模块的特点, 设计实现了用软件来模拟 U A R T ...…

查看全部问答>