ZHCAF13 February 2025 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3519 , MSPM0L1105 , MSPM0L1106 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2228 , MSPM0L2228-Q1
LIN 命令器演示代码的主要功能是在 LIN 协议帧中发送不同的命令。当按下两个按钮时,会紧急发送 PID 0x39 和 0x08。其中一个用于点亮响应器的 LED,另一个用于从响应器接收数据。
图 2-1 展示了 LIN 命令器演示代码的流程。
为了初始化硬件,使用了 TI 系统配置工具 (SysConfig) 生成 UART 的配置代码,如 UART 时钟、引脚配置等。在此演示代码中,我们按照 LIN 规范要求,选择了 19200 波特率。
表 2-3 展示了 LIN 命令器项目的摘要,其中包括主要使用的定义和函数。
| 名称 | 任务 | 说明 | 位置 |
|---|---|---|---|
| LIN_TABLE_INDEX_PID_xx | 定义 | 每个帧的 PID | lin_command.c |
| LIN_MESSAGE_NOT_FOUND | 定义 | 0xFF。未找到消息时的 UART LIN 值 | lin_config.h |
| LIN_SYNC_BYTE | 定义 | 0x55。同步字节的 UART LIN 值 | lin_config.h |
| LIN_BREAK_LENGTH | 定义 | 0x08。UART LIN 中断长度设为 1ms | lin_config.h |
| SYSCFG_DL_init() | 函数 | 初始化由 Sysconfig 生成的外设 | ti_msp_dl_config.c |
| DL_UART_enableLINSendBreak(UART_Regs *uart) | 函数 | 启用发送中断。启用后,当前字符传输完毕后,TXD 信号持续输出低电平 | dl_uart.c |
| DL_UART_disableLINSendBreak(UART_Regs *uart) | 函数 | 禁用发送中断 | dl_uart.c |
| LIN_Commander_transmitMessage(UART_Regs *uart, uint8_t tableIndex, uint8_t *buffer, LIN_table_record_t *messageTable) | 函数 | LIN 传输消息 | lin_config.c |
| LIN_processMessage_Rx() | 函数 | 在收到消息时进行处理 | Lin_commander.c |