单片机/MCU论坛
直播中

张莹

8年用户 1108经验值
私信 关注
[问答]

TC397 LIN从属设备无法接收主机发送的数据是怎么回事?

static 常量 IfxAsclin_Lin_Pins lin1_pins = {
.tx =  LIN1_TXD_PIN,
.txMode = IfxPort_OutputMode_pushPull,
.rx =  LIN1_RXD_PIN,
.rxMode = IfxPort_InputMode_pullUp,
.pinDriver = IfxPort_PadDriver_cmosAutomotiveSpeed1
};
void lin_init(uint8 bus)
{
// 使用默认值初始化一个 IfxAsclin_Lin_Config 实例
IfxAsclin_Lin_Config linConfig;
IfxAsclin_Lin_initModuleConfig( linConfig, lin_module[bus]);
linConfig.linMode = IfxAsclin_LinMode_slave;
linConfig.brg.baudrate = lin_baudrate[bus];
linConfig.pins = lin1_pins ;
// 初始化模块
IfxAsclin_Lin_initModule( lin_bus_handle[bus], linConfig);
}
初始化函数如上,但 IfxAsclin_Lin_receiveHeader( lin_bus_handle[bus], id);后
lin_bus_handle[bus].acknowledgmentFlags.rxHeaderEnd 标志不为 1
参考代码如附件
使用的开发板为 TriBoard TC3X7 ADAS TH V2.0 芯片为 TC397


回帖(1)

贾大林

2024-3-5 16:57:08
linConfig.baudrate = 9600;linConfig.lindivid = bus;linConfig.linioTimeout = 1000;linConfig.linioTimeoutAT = 1000;linConfig.timeoutUnit = IfxAsclin_LinTimeoutUnit_ms;linConfig.headerTimeout = 10;linConfig.breakLength = 13;linConfig.overrunMode = IfxAsclin_LinOverrunMode_discardData;linConfig.headerMode = IfxAsclin_LinHeaderMode_classicDiscard;linConfig.utxPriority = num;linConfig.urxPriority = num;linConfig.txPin = &lin1_pins.tx;linConfig.txMode = &lin1_pins.txMode;linConfig.rxPin = &lin1_pins.rx;linConfig.rxMode = &lin1_pins.rxMode;linConfig.pinDriver = &lin1_pins.pinDriver;IfxAsclin_Lin_initModule( lin_module, &linConfig); }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分