本帖最后由 alan7lanshui 于 2018-3-16 18:02 编辑 stm32板子,断电重启之后,无法进行CAN通信,只有在第一次写入程序时,可以进行CAN通信,这是为什么? 试验方法: 1、板子2烧进去程序,不断电,拔掉跳线帽,使boot0=0,可以与板1CAN通信; 2、板子2烧进去程序,断电,拔掉跳线帽,使boot0=0,不可以与板1CAN通信; 3、板子2烧进去程序,断电,拔掉跳线帽,使boot=0,重新上电,不可以与板1CAN通信,板子复位一次,可以与板1通信。(有的时候可能要复位好几次CAN才能通信)。4、通信过程中拔掉CAN总线,重新连接之后,可以通信。 CAN试验通信流程: PC串口向板1发送指令->板1接收到指令后,通过CAN总线发送给板2->板2接收到板1通过CAN发送的数据后,做出相应控制,并将数据通过CAN再发送给板1。 提出的问题: 会不会是板2突然掉电,使CAN离线,做出错误管理,再次上电后无法通信,重新复位后,将错误管理置位的标志清空,可以再次通信?(提出的小疑问) 使用过的方法:将ABOM=ENABLE,没有效果。 硬件环境: MCU:stm32F103R8T6 CAN收发器:MCP2551 软件环境: Keil5.16+stm32固件库V3.5版本。 |
评分
查看全部评分
都不能,先检查硬件,再检查CAN的配置....
评分
查看全部评分
昨天晚上试验方法:
1、板子烧进去程序,不断电,拔掉跳线帽,使boot0=0,CAN可以通信;
2、板子烧进去程序,断电,拔掉跳线帽,使boot0=0,CAN不可以通信;
3、板子烧进去程序,断电,拔掉跳线帽,使boot=0,重新上电,CAN不可以通信,板子复位一次,CAN可以通信。(有的时候可能要复位好几次CAN才能通信)。
您好!请您看看现在的问题描述。
使用CAN接收中断接收,进入中断后,将数据再返回。
实验现象:无法进入CAN接收中断
有120欧终端电阻
1、CAN波特率不同
2、CAN网络未加120欧姆电阻
3、CAN网络发生错误,重新初始化CAN总线。我用ST的CAN好多年了。未发生类似的问题。
评分
查看全部评分
1、板1和板2是两块相同的PCB板,MCU和CAN收发器都一样
2、CAN波特率设置的都是1MBbps
3、有120欧电阻
断电重启之后,将板2重新复位之后,可以通信
将stm32f103R8T6复位,程序重新执行,会初始化CAN,可以通信。
问题:板子断电,再重新上电,MCU不也会重新执行程序吗?
我说的意思是,程序中增加自动初始化CAN总线的代码,不是让你复位或者断电。