打印
[STM32F1]

STM32的LIN接收

[复制链接]
1116|41
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stly|  楼主 | 2020-9-1 20:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
这里的产生中断是独立的LIN中断还是基于USART的?

使用特权

评论回复
沙发
liuzaiy| | 2020-9-1 20:44 | 只看该作者

然后呢?你是怎么应对这个的呢        

使用特权

评论回复
板凳
gongche| | 2020-9-1 20:54 | 只看该作者
如果是基于USART的请问当LBD=1;LBDIE=1(产生中断);时。通过USART口接收到的第一个数应该是0X55吧。我们应该把他忽略掉吗?

使用特权

评论回复
地板
stly|  楼主 | 2020-9-1 21:03 | 只看该作者

使用特权

评论回复
5
xxrs| | 2020-9-1 21:06 | 只看该作者
这个中断应该是break中断,如果你用的是晶振偏差在2%以内(好像是LIN规范要求的)而且确认波特率没配错可以忽略下一个字节55

使用特权

评论回复
6
stly|  楼主 | 2020-9-1 21:14 | 只看该作者
就是以UART为基础。接收到断开符号后,串口接收到的第一个字节0X55,可以忽略?

使用特权

评论回复
7
stly|  楼主 | 2020-9-1 21:17 | 只看该作者
最后的CRC需要确认吗?

使用特权

评论回复
8
yufe| | 2020-9-1 21:20 | 只看该作者
checksum肯定要接收的呀,要不然怎么保证数据接收的正确?

使用特权

评论回复
9
xxrs| | 2020-9-1 21:24 | 只看该作者
我觉得你该仔细看下LIN规范了,瑞萨有篇很不错的PDF介绍LIN的

使用特权

评论回复
10
stly|  楼主 | 2020-9-1 21:32 | 只看该作者
DATA不会错。CRC接收过来有什么用啊?

使用特权

评论回复
11
supernan| | 2020-9-1 21:38 | 只看该作者
你需要用Break中断或者采用串口的空闲中断。

使用特权

评论回复
12
yufe| | 2020-9-1 21:50 | 只看该作者
报文头一般不需要处理,因为都一样的,校验的话就要看你的LIN版本了,LIN2.0以上采用的是增强型的校验,LIN1.3的是基本校验。

使用特权

评论回复
13
wenfen| | 2020-9-1 21:53 | 只看该作者
相关资料网上很多的,最好是买一个LIN分析工具来看看最直观

使用特权

评论回复
14
stly|  楼主 | 2020-9-1 21:57 | 只看该作者
Break中断     串口的空闲中断
我LIN使能了后,UART是不是就是用不了了?

使用特权

评论回复
15
stly|  楼主 | 2020-9-1 22:00 | 只看该作者

LIN初始化是不是使能LIN(USART_CR1的RE=1),然后设置中断检测(USART_CR2 的LBDL=0)、设置中断产生位(USART_SR的LBDIE=1)。这是我的使能步骤。可是一直没有效果。

使用特权

评论回复
16
morrisk| | 2020-9-1 22:08 | 只看该作者
收发器是?

使用特权

评论回复
17
stly|  楼主 | 2020-9-1 22:12 | 只看该作者
TJA1040。并且一直让TJA1040处在工作状态。可是就是不触发中断!

使用特权

评论回复
18
zhanglli| | 2020-9-1 22:18 | 只看该作者
数据域对了

使用特权

评论回复
19
stly|  楼主 | 2020-9-1 22:21 | 只看该作者
CRC应该不会错的吧?

使用特权

评论回复
20
chenho| | 2020-9-1 22:25 | 只看该作者
收发器错了。1040是Can的收发器,Lin应该是1020、1021。

使用特权

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

本版积分规则

433

主题

7058

帖子

0

粉丝