- 🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用
- 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】
- 🍅 玩转CANoe,博客目录大全,点击跳转👉
目录
- linSetRespBaudrate(设置波特率)
- linMeasRespBaudrate(测量波特率)
- TestWaitForMessage(等待报文事件发生)
- linGetMeasBaudrate(得到波特率的测量结果)
- linResetRespBaudrate(重置波特率)
linSetRespBaudrate(设置波特率)
- 以下测量环境为主节点在线,从节点仿真。
- linSetRespBaudrate函数用于为指定报文设置响应段的波特率,函数语法如下
- LIN总线默认波特率为19200,baudrate参数取值范围为【1000-20000】
linMeasRespBaudrate(测量波特率)
- 该函数用于测量指定报文的数据段的波特率
- 必要时,需要通过setBusContext和GetBusNameContext函数指定测量的LIN通道。
- 这个函数仅仅是准备测量,只有当指定的报文发送到总线上时,才开始测量。然后可通过linGetMeasBaudrate函数获取测量值。
- 只有指定的数据字节至少包含一个“0”位和一个“1”位时,才能测量波特率,所有,选择测量的数据不能是下面的特定值。
TestWaitForMessage(等待报文事件发生)
- 这个函数在CAN/LIN总线中都可用,用于等待特定报文事件的发生。
linGetMeasBaudrate(得到波特率的测量结果)
- 这个函数返回linMeasHeaderBaudrate() or linMeasRespBaudrate() 函数的测量结果。
linResetRespBaudrate(重置波特率)
- 将指定帧的响应波特率重置为主节点的波特率
测试示例代码如下:
void func_1()
{
long ret;
long LIN_ID = 0X23;
ret=GetBusNameContext("LIN1");
setBusContext(ret);
write("linSetRespBaudrate:%d",linSetRespBaudrate(LIN_ID,19200*0.98 )); //设置波特率
write("linMeasRespBaudrate:%d",linMeasRespBaudrate(LIN_ID,1)); //测量0x23报文Byte(1)的波特率
write("TestWaitForMessage:%d", TestWaitForMessage(LIN_ID ,1000)); //等待报文事件发生
write("linGetMeasBaudrate:%.0f",linGetMeasBaudrate()); //得到测试结果
testWaitForTimeout(10000);
write("linResetRespBaudrate:%d",linResetRespBaudrate(LIN_ID)); //恢复波特率
write("linMeasRespBaudrate:%d",linMeasRespBaudrate(LIN_ID,1)); //测量0x23报文Byte(1)的波特率
write("TestWaitForMessage:%d", TestWaitForMessage(LIN_ID,1000)); //等待报文事件发生
write("linGetMeasBaudrate:%.0f",linGetMeasBaudrate()); //得到测试结果
}
测试结果:
Program / Model linSetRespBaudrate:1
Program / Model linMeasRespBaudrate:0
Program / Model TestWaitForMessage:1
Program / Model linGetMeasBaudrate:18826
Program / Model linResetRespBaudrate:1
Program / Model linMeasRespBaudrate:0
Program / Model TestWaitForMessage:1
Program / Model linGetMeasBaudrate:19213
- 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!
- 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。