Lin总线是基于UART/SCI的低成本串行通信协议。相对于CAN总线而言,LIN总线协议较为简单,对单片机的要求也并不高,基本的串口就可以实现,因而成本较低,常作为CAN总线的辅助总线。
Lin模块的配置步骤如下:
- 配置Mcu时钟参考点
- 配置Port
- 配置LinChannel
1.Mcu时钟参考点配置
配置Lin硬件外设(可选择LIN01~LIN19)的PCLK

配置McuClockReferencePoint

2.Port配置
TX

RX

3.LinChannel配置
- 选择Lin外设
- 引用Mcu配置的时钟参考点
- 自动生成波特率(生成的波特率为配置的PCLK频率的十六分之一)

- LinChannelId:通道索引。
- LinChannelWakeupSupport:硬件通道是否支持唤醒功能。


- LinChannelBreakLength:同步间隔段长度(单位:位)。
- LinChannelBreakDelimiter:同步间隔段间隔符长度(单位:位)。
- LinChannelWakeupLength:接收唤醒信号的长度(单位:位)。
4.使用示例
使能Lin收发器
Dio_WriteChannel(DioConf_DioChannel_LIN_SLP01, STD_HIGH);
初始化Lin驱动
Lin_Init(NULL_PTR);
唤醒Lin通道
Lin_WakeupInternal(LinConf_LinChannel_LinChannel_03);
在10ms周期Task中调用
Lin_ReturnValue = Lin_GetStatus(LinConf_LinChannel_LinChannel_03, &linSduPtr);
if((LIN_TX_OK == Lin_ReturnValue || (LIN_OPERATIONAL == Lin_ReturnValue))
{
/* Send LIN frame */
Lin_SendFrame(LinConf_LinChannel_LinChannel_03, &linFrame);
}
605

被折叠的 条评论
为什么被折叠?



