QQ334911390 发表于 2023-8-17 11:02:38

请教LIN通信问题 | 已解决

请教一下:
1.UART LIN在接收LIN数据时是否会检测间隔场时间(>=13位显性电平),以判断是否收到帧头;(如果不检测显性电平间隔场时间,一直收到0x00,0x55,是否整个通信和协议就会乱掉)。
2.使用一个UART LIN 初始化时 设为主模式,是否就只能发,设为从就只能收;如果又想发,又想收,是否只能用两个UART LIN(或一个硬件LIN,一个UARTLIN),一个管发,一个管收?或者一个UART LIN 发之前初始化为主,想收了再初始化为从,这样感觉逻辑和处理上有问题。

乘风飞扬 发表于 2023-8-17 13:42:35


1. USARTLIN会检测间隔场,也会检测是否收到报头(HDRDET)。
2. LIN不管主机模式还是从机模式都是可以收/发的,参考我们的例程。
需要交互通信时,正常是由主机发送帧头,从机收到帧头后判断是自己需要回复的ID,就可以回复数据,与主机发送的帧头合并成一个完整的帧。

QQ334911390 发表于 2023-8-17 16:42:53

{:victory:}{:handshake:}

yunweiping 发表于 2024-3-2 16:45:58

请问一下,这是哪个系列的单片机的规格书,我在STC15系列的规格书没有找到这个寄存器

神农鼎 发表于 2024-3-2 16:48:30


STC32G12K128 规格书下载

深圳国芯人工智能有限公司-产品_STC32系列 (stcai.com)

yunweiping 发表于 2024-3-2 18:09:29

只有32G系列的才有这个寄存器吗?其他的像8H 系列的有这个寄存器吗

神农鼎 发表于 2024-3-2 19:39:02

要看规格书,不是啥新功能,其他老芯片都有

yunweiping 发表于 2024-3-8 21:41:01

USARTLIN会检测间隔场, 为什么不能进入串口中断?需要软件检测吗?

yunweiping 发表于 2024-3-8 21:48:11

void Uart2_Isr(void) interrupt 8
{
        if(USART2CR5&0x80)   //BRKDET
        {   
                USART2CR5&= ~0x80;
//                DRL_EN=ON;
        }
}这个中断进不了,在主程序循环检测       
if(USART2CR5&0x80)   //BRKDET
        {   
                USART2CR5&= ~0x80;
//                DRL_EN=ON;
        }一样进不了,好像一直就没有检测到LIN间隔场标志,示波器是有间隔场的
页: [1]
查看完整版本: 请教LIN通信问题 | 已解决