STM32F205ZET6 单片机CAN1通讯程序无法通讯

2019-03-25 14:47发布

STM32F205ZET6单片机,使用PA11和PA12进行CAN通信,收发器无论是ISO1050还是TJA1050,都不成功,发送信息时,CAN_TransmitStatus函数一直返回Pending,请问是为什么啊?




另外,使用CAN分析仪——收发器——PA11,PA12连接时,单片机的PA11和PA12引脚是有波形的,,两个引脚都有方波,TXD上的波形密集些,RXD上面的好像只有一个低脉冲,占空比很高,


主要是使用ISO1050芯片通讯,但是就无法发送数据,也没有办法进入到接收终端之中,中断函数我自认为配置好了,和库函数的配置是一样的,


ISO1050 电路为:有120欧终端电阻,CAN_TX和CAN_RX接上拉电阻472,CANH和CANL之间有120欧终端电阻,并且各串接了一个零欧电阻,


大家交流交流?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
huaiqiao
1楼-- · 2019-03-26 22:07
mo_正_pei 发表于 2017-3-16 14:29
首先,很感谢你的热心批评指导,我以后会注意的了。现在我大概是确认了不是外围电路的问题,我是使用的核 ...

楼主你搞错了,不是批评,也没有指导。我只是表达了个事实。乱的东西你也不会有耐心看的,我们将心比心。

无法进入接收中断,是不是你忘记配置nvic了,还是中断优先级跟其他中断的优先级打架呢?

还有gpio的配置上面,我用F405是如下的配置:
  1. GPIO_InitStructure.GPIO_Pin = CAN1_RX_GPIO_PIN| CAN1_TX_GPIO_PIN;
  2.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;                //复用功能
  3.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;                //推挽输出
  4.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //100MHz
  5.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;                //上拉
复制代码

还有,你需要再检查下,gpio是否调用复用函数。你是用can1还是can2这个一定要仔细核对。can的配置,过滤器的配置。我想我给你的资料里面都有介绍。
huaiqiao
2楼-- · 2019-03-27 00:38
mo_正_pei 发表于 2017-3-16 14:29
首先,很感谢你的热心批评指导,我以后会注意的了。现在我大概是确认了不是外围电路的问题,我是使用的核 ...

还有,你可以先测测回环模式,然后再来正常模式。
mo_正_pei
3楼-- · 2019-03-27 02:18
这是主函数以及CAN的配置程序,见附件
mo_正_pei
4楼-- · 2019-03-27 03:19
huaiqiao 发表于 2017-3-16 14:59
还有,你可以先测测回环模式,然后再来正常模式。

回环测试是可以的,能正确运行,回环测试改为Normal模式,需要注意些什么东西呢?
huaiqiao
5楼-- · 2019-03-27 09:04
 精彩回答 2  元偷偷看……
eric_wang
6楼-- · 2019-03-27 14:44
mo_正_pei 发表于 2017-3-16 15:00
这是主函数以及CAN的配置程序,见附件

楼主这个.C的 文件我们怎么看?
建议如图插入代码
QQ20170316-161131.jpg