请教LIN通信问题 | 已解决
请教一下:1.UART LIN在接收LIN数据时是否会检测间隔场时间(>=13位显性电平),以判断是否收到帧头;(如果不检测显性电平间隔场时间,一直收到0x00,0x55,是否整个通信和协议就会乱掉)。
2.使用一个UART LIN 初始化时 设为主模式,是否就只能发,设为从就只能收;如果又想发,又想收,是否只能用两个UART LIN(或一个硬件LIN,一个UARTLIN),一个管发,一个管收?或者一个UART LIN 发之前初始化为主,想收了再初始化为从,这样感觉逻辑和处理上有问题。
1. USARTLIN会检测间隔场,也会检测是否收到报头(HDRDET)。
2. LIN不管主机模式还是从机模式都是可以收/发的,参考我们的例程。
需要交互通信时,正常是由主机发送帧头,从机收到帧头后判断是自己需要回复的ID,就可以回复数据,与主机发送的帧头合并成一个完整的帧。
{:victory:}{:handshake:} 请问一下,这是哪个系列的单片机的规格书,我在STC15系列的规格书没有找到这个寄存器
STC32G12K128 规格书下载
深圳国芯人工智能有限公司-产品_STC32系列 (stcai.com)
只有32G系列的才有这个寄存器吗?其他的像8H 系列的有这个寄存器吗 要看规格书,不是啥新功能,其他老芯片都有 USARTLIN会检测间隔场, 为什么不能进入串口中断?需要软件检测吗? 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]