Les_pauvres 2025-02-04 15:58 采纳率: 0%
浏览 79

tmc2209 uart配置咨询 有偿答疑

**香菜可以帮我看看 请教一下 我使用的是 mks tmc2209 就这样接线和串口助手通讯 115200 8 1 0协议相同 但是无法读取寄存器的值
想做堵转检测 会传信号给 ASRPRO
blog.csdn.net/m0_64386340/article/details/142744672
教程是按这个走的 我的理解应该就是无限位归零

img


img


img


img

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2025-02-04 15:58
    关注

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    您好!您的设备使用的是MKS TMC2209,而串口助手通讯的通信模式为115200BPS、波特率8位/1字节(ASCII码),这与您使用的协议不同。您希望在TMC2209上实现一个简单的阻塞反转功能,并且希望将此功能集成到串口助手中。以下是一些可能的解决方案:

    1. 使用串行通信模块

    • 硬件选择:考虑使用一块串行接口卡,例如RTC8463或RTC8467,这些卡提供了高达115,200BPS的传输速率。
    • 软件设计:根据需要,您可以创建一个应用程序来驱动这个串行接口卡并实现阻塞反转功能。这里提供一个示例代码片段,演示了如何通过中断函数发送数据到串行接口卡:
    #INCLUDE <STDIO.H>
    #INCLUDE <STDLIB.H>
    
    VOID SETUP() {
        // 初始化串行接口卡
    }
    
    INT MAIN() {
        // 设置串行接口卡的波特率
        RCC->AHB2ENR |= (1 << AHB2ENREN);
    
        // 创建串行接口卡实例
        RTC8463 *RTC = RCC->RCC->RRC_GETINTERFACE(RCC_RTC8463);
        
        // 从串行接口卡接收数据
        WHILE (1) {
            // 检查是否收到了数据
            IF (!RTC->RECEIVEDATA(1)) {
                BREAK;
            }
            
            // 发送数据到串行接口卡
            RTC->SENDDATA(1); // 发送数据
        }
    
        // 关闭串行接口卡
        RTC8463->CR1 &= ~(1 << RTC8463_CR0);
        RTC8463->CR0 &= ~(1 << RTC8463_CR1);
        RTC8463->CR1 |= (1 << RTC8463_CR0);
        RTC8463->CR0 |= (1 << RTC8463_CR1);
    
        RETURN 0;
    }
    

    2. 硬件扩展

    • 如果您希望进一步扩展TMC2209的性能,考虑使用更强大的硬件扩展卡,如RTC8468或RTC8469等。
    • 对于串口助手,您可能需要考虑增加更多控制点,以支持更多的模拟量输入输出(MPI)端口。这通常需要额外的硬件扩展卡或电源适配器。

    结论

    如果您希望在TMC2209上实现阻塞反转功能,并将其集成到串口助手中,首先需要确保串口助手支持115,200BPS的波特率,并且您已经选择了正确的串行接口卡。接下来,您可以考虑使用硬件扩展卡来进一步提高性能和扩展性。如果可能的话,考虑使用更高级别的串行接口卡,如RTC8469或RTC8468,它们通常具有更高的波特率和更好的性能。最后,确保在开发过程中遵循相关法规和标准,包括ISO/IEC 11801和IEEE 754-2008等。祝您开发顺利!

    评论

报告相同问题?

问题事件

  • 创建了问题 2月4日