单块板子在接入can总线时没有任何问题,但是多块板子同时接入can时,基本只有一块是可以用的,其他板子会卡死,起初认定是总线连接的问题,试过总线上接入120ohm电阻一只或两只,都没有效果,通过keil使用jlink进入调试模式发现程序卡死在startup_stm32f10x_md.s的下面位置,经老师指点此处应为stm32的中断服务程序的入口位置,推测是can总线中断没处理好,老师问有没有处理接收中断,我说没有写can接收的中断服务。

273                B       .

274

275                ENDP

然后,将下面程序中的ENABLE更改为DISABLE则,程序可以运行了。

/*CAN FIFO0 message pending interrupt enable */

CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE); //使能FIFO0消息挂号中断

因此在多块can总线开发板互联时,要么编写can接收中断的服务程序,要么不要使能接收中断,即不使能FIFO0消息挂号中断,否则要加入类似如下的中断服务程序

  1. /* USB中断和CAN接收中断服务程序,USB跟CAN公用I/O,这里只用到CAN的中断。 */

  2. void USB_LP_CAN1_RX0_IRQHandler(void)

  3. {

  4. CanRxMsg RxMessage;

  5. RxMessage.StdId=0x00;

  6. RxMessage.ExtId=0x00;

  7. RxMessage.IDE=0;

  8. RxMessage.DLC=0;

  9. RxMessage.FMI=0;

  10. RxMessage.Data[0]=0x00;

  11. RxMessage.Data[1]=0x00;

  12. CAN_Receive(CAN1,CAN_FIFO0, &RxMessage); //接收FIFO0中的数据

  13. if((RxMessage.StdId==slaveID)&&(RxMessage.Data[0]==0x55))

  14. {FABIAO=0xff;}

  15. }

总结:

个人觉得自己有点偏执,开始一直认为单个通信正常,连在一起不正常是总线对外硬件配置的问题,没有想到是程序配置问题,但是最终也大致提出了可能是can总线配置问题,但由于stm32 can总线没有仔细学习,导致也没有推测出问题。

其二没有好好利用jlink,仅仅将其当作下载器使用,还是没有好好思考。没有多进入debug模式下进行分析。

stm32多块开发板can总线互联卡死问题相关推荐

  1. 基于STM32开发板CAN总线通信协议浅析

    基于STM32开发板CAN总线通信协议浅析 一.前言 控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一 ...

  2. 【STM32 .Net MF开发板学习-02】GPIO测试

    前段时间我借用市面上现成的Corex-M3开发板,打造了最低价的.Net Micro Framework开发板(参见<免费发放firmwave,打造史上最低价.Net MF开发板>),在此 ...

  3. STM32 BLDC电机驱动开发板资料 反电动势B-EMF过零检测

    STM32 BLDC电机驱动开发板资料 反电动势B-EMF过零检测 华愉电子工作室

  4. 官方STM32的NUCLEO开发板使用

    官方STM32的NUCLEO开发板使用 概述:因工作需求,先买了stm32的NUCLEO开发板做测试板,本人使用的是L073RZ这块板子,也是第一次接触stm32,摸索状态.这里记录一下使用过程,做笔 ...

  5. USB开发—STM32 USB Audio 开发板介绍(Feedback)

    USB开发-STM32 USB Audio 开发板介绍(Feedback) 一.背景 我个人从事音频行业有好几年的时间.后面慢慢的做起了声卡,也就是USB Audio.自己也走了不少的弯路.之前一起是 ...

  6. 【STM32 .Net MF开发板学习-11】步进电机控制(非PWM模式)

    选用的步进电机的型号为28BYJ-48(或MP28GA,5V,转速比1/64),驱动电路选用 uln2003芯片的驱动板,其控制时序图如下: 四相八拍:A->AB->B ->BC - ...

  7. 迅为四核4418开发板MiniLinux-CAN总线测试使用文档

    文档介绍的是在 MiniLinux 系统环境下 iTOP-4418 CAN 实验调试步骤.提供了"can_libs.rar"."can_tools.zip"和& ...

  8. 【STM32 Net MF开发板学习-11】步进电机控制(非PWM模式)

    选用的步进电机的型号为28BYJ-48(或MP28GA,5V,转速比1/64),驱动电路选用uln2003芯片的驱动板,其控制时序图如下: 四相八拍:A->AB->B ->BC -& ...

  9. 【STM32】STM32F4开发板简介

    00. 目录 文章目录 00. 目录 01. STM32F4开发板的资源图 02. STM32F4开发板板载资源 03. STM32F4部分资源说明 04. 附录 05. 声明 01. STM32F4 ...

最新文章

  1. python dataframe 分位数_Python pandas.DataFrame.quantile函数方法的使用
  2. P2172 [国家集训队]部落战争 二分图最小不相交路径覆盖
  3. 网络管理常用命令之二 - Ipconfig 命令详解(图文)
  4. 若变量均已正确定义并赋值,以下合法的c语言赋值语句是,若变量均已正确定义并赋值,以下合法的C语言赋值语句是()...
  5. python怎么封装方法然后调用_我现在想把自己写的python模块源代码封装成dll,然后在别的python脚本里调用,可以吗?...
  6. 北交的计算机和北理,北航与北理
  7. c语言中malloc、realloc与calloc 的区别以及联系
  8. Eclipse导入GitHub项目两处报错处理
  9. Python:以鸢尾花数据为例,介绍决策树算法
  10. 提高编写CSS代码效率的10个习惯
  11. Apache与Tomcat 区别与联系
  12. python 整数转字符串_16、atoi-整数字符串转整数-leetcode8-中等
  13. 二进制与以 2 为底的指数
  14. ftp误删服务器文件恢复,ftp服务器文件误删
  15. 计算机开机配置失败6,win7开机配置windows update失败怎么跳过?-win7配置update失败,安全模式还是配置失败...
  16. 百度绿萝算法对网站排名有哪些影响
  17. Python课程第六周笔记及作业练习
  18. 免费无需魔法会语音聊天的ChatGPT
  19. 电脑开机出现奇怪字符_电脑开机黑屏怎么办出现英文字符
  20. 聊天记录怎么删除才能防止被恢复

热门文章

  1. Java线程详解(5)-线程的同步与锁
  2. 关于反爬虫,看这一篇就够了 1
  3. 分解和合并:Java 也擅长轻松的并行编程!
  4. 多线程:一些好的编程建议
  5. logging下的path配置的是自己本地项目下的地址
  6. Java 洛谷 P1085 不高兴的津津
  7. Java 构造方法中super()的作用以及使用
  8. 删除binlog mysql_mysql中删除binlog的方法?mysql中如何删除binlog?
  9. 显示屏连接控制卡超时_小间距led显示屏的安装步骤
  10. 年运行10万台服务器数据中心方案设计公示