711 发送请求失败_STM32 CAN 发送的简单测试

can接口相对是一种常用的串行接口,但是不像spi、i2c、uart等接口都有主从的关系,can可以任何一个节点主动发送数据,并且假如出现总线冲突会有硬件来处理。

can和rs485又有些类似,都是把ttl信号转换成了差分信号。所以在stm32 使用can的时候会有一个can收发器。

611b9a1aac59e9b73e6d04d4e54117fb.png

从电路上看起来也很简单,stm32也是通过can tx、rx两根线和收发器相连。所以假如我们要测试can的发送,是不是只接can tx脚就可以了?

我最开始也以为这样就可以,但是深究can的总线冲突检测原理就会发现这样行不通的。因为can 在发送数据的时候也会同时接收发送的数据,通过把接收的数据和内部发送寄存器的数据做对比,是不是一致就知道总线有没有冲突。所以在正常情况(这里意味着非正常情况下也可以)下can rx不接就到这发送出去的数据无法收到从而硬件自动判断为发送失败。

所以要保证发送数据成功,can tx脚和can rx脚要都接上,并且确保can收发器供电正常。

硬件上就这些主要注意点,接下来就主要是软件的配置了。

一般stm32 配置can有以下几大步骤:

  1. can的初始化(cubemx直接可以生成代码)
  2. can的启动
  3. can滤波器的设置(用来接收的,发送的时候可以不用配置它)
  4. can执行发送数据请求

我们只测试can的发送,所

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值