ZHCAF59 March 2025 MSPM0G3507
所有可配置参数都在 user_define.h 中定义,这些参数在可配置参数中列出。
对于 UART,此示例同时支持透明传输和协议传输。可以通过定义 UART_TRANSPARENT 或 UART_PROTOCOL 来切换这些函数。
在透明传输中,用户可以配置超时来检测一条 UART 消息接收是否完成。
在协议传输中,用户可以为不同格式配置 ID 长度。请注意,有一个固定的 2 字节报头 (0×55 0×AA) 和 1 字节数据长度。若要更详细地修改格式,用户可能需要直接修改代码。
#define UART_TRANSPARENT
#ifdef UART_TRANSPARENT
/* The format of Uart:
* Transparent transmission - Data1 Data2 ...*/
#define UART_TIMEOUT (0x4000) //timeout 250ms
#else
#define UART_PROTOCOL
/* The format of Uart:
* if UART_ID_LENGTH = 4, format is 55 AA ID1 ID2 ID3 ID4 Length Data1 Data2 ...
* if UART_ID_LENGTH = 1, format is 55 AA ID Length Data1 Data2 ...
* if UART_ID_LENGTH = 0, format is 55 AA Length Data1 Data2 ...*/
//#define UART_ID_LENGTH (0)
//#define UART_ID_LENGTH (1)
#define UART_ID_LENGTH (4)
#endif
对于 CAN,ID 和数据长度包含在 CAN 帧中。用户可以通过更改 CAN_ID_LENGTH 在数据区域中添加另一个 ID。(默认值为 0)。
/* The format of CAN:
* if CAN_ID_LENGTH = 4, format is ID1 ID2 ID3 ID4 Data1 Data2 ...
* if CAN_ID_LENGTH = 1, format is ID Data1 Data2 ...
* if CAN_ID_LENGTH = 0, format is Data1 Data2 ...*/
#define CAN_ID_LENGTH (0)
//#define CAN_ID_LENGTH (1)
//#define CAN_ID_LENGTH (4)
| 参数 | 可选值 | 说明 |
|---|---|---|
| #define UART_TRANSPARENT | 定义/未定义 | 启用 UART 透明传输。 |
| #define UART_PROTOCOL | 定义/未定义 | 启用 UART 协议传输。 |
| #define UART_TIMEOUT (0x4000) | 超时 = UART_TIMEOUT/32768s | 超时表示一条 UART 消息接收完成。仅在定义了 UART_TRANSPARENT 时可用。在本例中,默认值为 250ms。 |
| #define UART_ID_LENGTH (4) | 0/1/4 | 可选 UART ID 长度,与协议中的 ID 区域相关。仅在定义了 UART_PROTOCOL 时可用。在本例中,默认值为四字节。 |
| #define CAN_ID_LENGTH (0) | 0/1/4 | 可选 CAN ID 长度,与协议中的 ID 区域相关。在本例中,默认值为 0 字节。 |
| #define TRANSMIT_DATA_LENGTH (12) | <=64 | 数据区域的大小。如果接收到的消息包含的数据多于此值,可能会发生数据丢失。 |
| #define C2U_FIFO_SIZE (8) | CAN 到 Uart 的 FIFO 大小。请注意 SRAM 的用法。 | |
| #define U2C_FIFO_SIZE (8) | Uart 到 CAN 的 FIFO 大小。请注意 SRAM 的用法。 | |
| #define DEFAULT_UART_ORIGIN_ID (0x00) | UART 原始 ID 的默认值 | |
| #define DEFAULT_UART_DESTINATION_ID (0x00) | UART 目标 ID 的默认值 | |
| #define DEFAULT_CAN_ORIGIN_ID (0x00) | CAN 原始 ID 的默认值 | |
| #define DEFAULT_CAN_DESTINATION_ID (0x00) | CAN 目标 ID 的默认值 |