STM32F103的CAN如何采集到"0"和"1"

2019-10-16 05:52发布

我举个例子吧。比如我要用STM32的CAN发一个0x55(01010101B),然而CAN又定义了每一位由三个段(同步段、时间段1、时间段2)组成,因为双方都没有波特率发生器所以要用同步段来进行同步,这我能想明白,我现在疑惑的是数据的通信速率同步了那接收方怎么去采集有效数据呢,它怎么把这个0x55给采集回来呢。这三个段里面总有个地方是我要传输的有效数据吧。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
憨厚诚实大叔
1楼-- · 2019-10-16 09:22
三个段(同步段、时间段1、时间段2),这个是位时序,是位时序。每一次只接受一位的数据,就是0或者1.接收你的0x55要8个位时序。这还不包括仲裁,校验,起始等等
aozima
2楼-- · 2019-10-16 09:46
CAN的基本传输单位是帧,而不是字节。 可以先找个基本文档或书看看。
ARM学员
3楼-- · 2019-10-16 13:02
憨厚诚实大叔 发表于 2016-12-2 11:54
三个段(同步段、时间段1、时间段2),这个是位时序,是位时序。每一次只接受一位的数据,就是0或者1.接收你的 ...

我明白你的意思,我的意思是接收方就怎么知道它这次接收到的就是0(三个段组成嘛)、1(三个段组成嘛),换句话说就是接收方在那个时刻去采集这个差分信号。
ARM学员
4楼-- · 2019-10-16 18:28
aozima 发表于 2016-12-2 12:13
CAN的基本传输单位是帧,而不是字节。 可以先找个基本文档或书看看。

大学生吧,感谢你的支持。
ARM学员
5楼-- · 2019-10-16 20:01
 精彩回答 2  元偷偷看……
憨厚诚实大叔
6楼-- · 2019-10-16 22:55
ARM学员 发表于 2016-12-2 14:57
哎,没注意看数据手册的"位时序"那幅图,这个问题算是明白了

位时序在时间段1、时间段2中间读取信号,还有一个补偿时间用来矫正的

一周热门 更多>