发新帖本帖赏金 10.00元(功能说明)我要提问
返回列表
打印
[STM32F7]

STM32F750 Linux CAN驱动收发测试成功

[复制链接]
4329|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 不爱说话 于 2018-12-14 13:15 编辑

CAN功能调通是这次做板最大的收获。
在做这块板子之前我是没有调通STM32 Linux socket CAN的,但是我觉得CAN接口是很有用的,于是抱着不成功便成仁的心态先把CAN收发器和接口做到板子上了。
调试开始后,一切都很顺利,u-boot ok,linux ok,之前F429上能用的功能在F750上都成功了,最后轮到CAN接口了。
由于我没有现成的CAN网络,我的测试方式是把两块板子的CAN接口连起来组成最小的网络,一块板子发送,另一块接收。
我用的测试程序来自于can-utils工具包,cansend是发送程序,candump是接收程序,一开始cansend可以执行但是接收那边没有动静,打开debug调试信息一看,原来can数据帧没有发出去一直mailbox里。这个问题困扰我好几天,网上搜索说STM32的CAN没接收发器或者没连入网络的时候会发不出去数据,可是我这里接了啊。
于是仔细检查电路,最后发现原因了,CAN TX/RX和收发器接反了(以前做RS232串口经常犯的错误又重现了,很没有面子啊),好在CAN接口是用跳线连接的,对调一下就可以。
检查连接无误后再次上电,先打开接收板的CAN接收程序(candump),然后在发送端敲入cansend 。。。。。。,接收端正确接收到的数据了,这次终于成了!!!

STM32裸机CAN收发也许不算什么,但是在Linux下还是很不一样的,它是按照网络套接字(socket)机制工作的,用户只需要写应用,至于数据收发,是否成功,超时检测都由系统做了。以后做CAN应用就可以像网络编程那样写程序了(虽然还有很多不明白的地方)。





打赏榜单

21ic小喇叭 打赏了 10.00 元 2018-12-28
理由:期待以后继续分享

沙发
mintspring| | 2018-12-17 14:22 | 只看该作者
竟然可以跑Linux

使用特权

评论回复
板凳
mintspring| | 2018-12-17 14:23 | 只看该作者
太强大了。

使用特权

评论回复
地板
不爱说话|  楼主 | 2018-12-17 19:35 | 只看该作者
现在不是十几年前了,那时单片机和linux系统泾渭分明。如果有人想在单片机上跑linux(或者uclinux)就是痴人说梦,就是**:)

使用特权

评论回复
发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:飞翼电子工作室 http://shop68798667.taobao.com/

115

主题

886

帖子

34

粉丝