完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
当联机模式为从属模式时
如何选择正确的参数来设置从属模式下的自动步进率? 这是我在函数 lin_init() 中的代码 if (lin_mode[bus] == IfxAsclin_LinMode_master) // for master init { linConfig.brg.baudrate = 19200; } else //for slave init { linConfig.btc.prescaler = 32; //3000 // linConfig.brg.baudrate = 19200; linConfig.brd.abd = TRUE; linConfig.brd.lowerLimit = 0x36; linConfig.brd.upperLimit = 0xBB; //3000 } 而我得到的错误信息是这样的 linAutobaudDetectionError = 1 |
|
相关推荐
1个回答
|
|
在 LIN 从属设备中使用自动调整器,首先需要确保从属设备能够正确地识别和同步主设备的波特率。在您提供的代码中,您已经为从属设备设置了一些参数,但是可能需要进行一些调整以解决自动步进率的问题。
1. 首先,确保从属设备的波特率与主设备相匹配。在您的代码中,无论 LIN 模式是主模式还是从模式,波特率都设置为 19200。这是一个好的开始,但请确保主设备也使用相同的波特率。 2. 在从属模式下,您需要启用自动波特率检测(Autobaud Detection)。在您的代码中,已经设置了 `linConfig.brd.abd = TRUE;`,这是一个正确的步骤。 3. 设置自动波特率检测的上下限制。在您的代码中,已经设置了 `linConfig.brd.lowerLimit = 0x36;` 和 `linConfig.brd.upperLimit = 0xBB;`。这些值应该覆盖了可能的波特率范围,但请确保它们与主设备的波特率相匹配。 4. 检查错误信息 `linAutobaudDetectionError = 1`。这个错误通常表示自动波特率检测失败。可能的原因包括: - 主设备和从属设备的波特率不匹配。 - 从属设备没有正确地识别到主设备的同步脉冲。 - 从属设备的自动波特率检测参数设置不正确。 为了解决这个问题,您可以尝试以下步骤: 1. 确保主设备和从属设备的波特率完全匹配。 2. 检查从属设备的硬件连接,确保没有连接问题。 3. 检查从属设备的自动波特率检测参数设置,确保它们覆盖了主设备的波特率范围。 4. 如果问题仍然存在,您可以尝试使用调试工具或示波器来观察从属设备接收到的信号,以确定问题所在。 5. 如果需要,您可以考虑修改从属设备的自动波特率检测算法,以便更好地适应您的特定应用场景。 通过以上步骤,您应该能够解决自动步进率的问题,并确保从属设备能够正确地与主设备通信。 |
|
|
|
只有小组成员才能发言,加入小组>>
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5362 浏览 2 评论
4071 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3588 浏览 9 评论
1203 浏览 8 评论
3491 浏览 7 评论
409浏览 2评论
241浏览 2评论
350浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5369浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
411浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 19:29 , Processed in 1.526574 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号