打印

【求助】 C851F 单片机 CAN编程

[复制链接]
2098|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
arm菜鸟人|  楼主 | 2013-3-25 15:27 | 只看该作者
如果,不是用CAN报文的过滤功能,是不是不用管消息处理?

使用特权

评论回复
板凳
渤海三叠浪| | 2013-3-25 20:33 | 只看该作者
32个消息对象,也可以叫做32个邮箱。

说白了 就是CAN的帧的数据区的8个字节存放的地方。

看LZ现在的状态 我觉得你第一步 应该到新华网网站上下载几个CAN的例子源码。先跑起来再说。

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
arm菜鸟人 + 4 赞一个!
地板
渤海三叠浪| | 2013-3-25 20:33 | 只看该作者
arm菜鸟人 发表于 2013-3-25 15:27
如果,不是用CAN报文的过滤功能,是不是不用管消息处理?

什么叫做消息处理?管他呢。会用就行。我觉得你现在先不用考虑报文过滤。

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
arm菜鸟人 + 4
5
arm菜鸟人|  楼主 | 2013-3-25 20:48 | 只看该作者
渤海三叠浪 发表于 2013-3-25 20:33
32个消息对象,也可以叫做32个邮箱。

说白了 就是CAN的帧的数据区的8个字节存放的地方。

懂了。我觉得目前还没必要使用过滤功能。谢谢点拨。

使用特权

评论回复
6
arm菜鸟人|  楼主 | 2013-4-11 20:38 | 只看该作者
渤海三叠浪 发表于 2013-3-25 20:33
什么叫做消息处理?管他呢。会用就行。我觉得你现在先不用考虑报文过滤。 ...

问一个问题,帧ID被放在哪个寄存器里呢?消息掩码寄存器还是消息仲裁寄存器?在不考虑滤波的情形下,使用基本模式,资料上说“在基本模式下,不能取得消息对象相关的控制和状态以及IFx命令掩码寄存器的控制位值”。

使用特权

评论回复
7
arm菜鸟人|  楼主 | 2013-4-11 23:05 | 只看该作者
将CAN 接收的调试成功了。还有发送,明天继续!

使用特权

评论回复
8
渤海三叠浪| | 2013-4-12 10:04 | 只看该作者
ID放到 IFx Arbitration Registers里面。寄存器说明在BOSCH can手册的21页。22页有详细说明

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
arm菜鸟人 + 4 valid inf
9
arm菜鸟人|  楼主 | 2013-4-12 10:42 | 只看该作者
渤海三叠浪 发表于 2013-4-12 10:04
ID放到 IFx Arbitration Registers里面。寄存器说明在BOSCH can手册的21页。22页有详细说明 ...


谢谢你的回复。
发现CAN接收的数据不对,不知道问题在哪。还麻烦你帮着看看。

使用的是基本模式,此时IF1为发送缓冲区,IF2为接收缓冲区。初始化和CAN接收程序见附图。
能够接收数据(在CAN0_Receive函数的 RxOk 里LED正常工作),但是接收到的数据不正确,在图中红色框中的LED不能按预期工作。
详见附图。

顺便问一下CAN波特率的配置:
CAN0BT
Res[15]Tseg2[14:12]Tseg1[11:8]SJWP[7:6]BRPE[5:0]
baud = Fclkcan ÷ (BRPE+1) ÷[(Tseg2 + 1) + (Tseg1 + 1) + (SJWP + 1)]
使用内部时钟 24MHz,提供的例程使用的 1Mbps 波特率,CAN0BT =0x1402
即:Tseg2 = 1, Tseg1 = 4, SJWP = 0, BRPE = 2
baud = 24M ÷ (2+1) ÷ [(1+1)+(4+1)+(0+1)] = 1 M
我配置 500 Kbps时
CAN0BT = 0x1C02
baud = 24M ÷ (2+1) ÷ [(1+1)+(12+1)+(0+1)] = 500 K
但是,发现不能通信,不知何故?
期待您的回复,谢谢。

DataSend.jpg (78.84 KB )

上位机发送CAN

上位机发送CAN

CANReceive.jpg (78.45 KB )

CAN接收函数

CAN接收函数

CANini.jpg (47.26 KB )

CAN初始化函数

CAN初始化函数

使用特权

评论回复
10
渤海三叠浪| | 2013-4-14 19:34 | 只看该作者
接收应该用中断服务程序啊。  还有先用小波特率试试  比如125K

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:感染属性。

34

主题

539

帖子

1

粉丝