历史上的今天
今天是: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中的数据。
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 08:57 编辑 来说说你都参加过什么竞赛吧? 如今这世道,太多的电子竞赛了,搞得头晕 呵呵 [ 本帖最后由 clark 于 2010-2-28 02:40 编辑 ] … 查看全部问答> |
|
一个内存检查的例程如下: 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设计领域和城市信息化建设领域。现拥有员工百名,设有北京鸿业同行科技有限公司、上海鸿业同行信息科技有限公司、洛阳高新鸿 ...… 查看全部问答> |
|
【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 ...… 查看全部问答> |




