野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8223|回复: 1

防坑—野火双闭环步进电机程序源码错漏

[复制链接]
发表于 2022-4-13 11:00:57 | 显示全部楼层 |阅读模式
使用野火步进电机例程——双闭环增量式程序的时候,给下位机发送目标值一直没反应,不知道为什么,后来仔细思考,又重新翻看野火的PID调试助手协议和讲解视频,发现       case SET_TARGET_CMD:
      {
        int actual_temp = COMPOUND_32BIT(&UART_RxBuffer[13]);

        /* 只设置位置的目标位置,速度的目标位置是由位置pid的输出决定的 */
        if (packet.ch == CURVES_CH1)   
        {
          set_pid_target(&move_pid, actual_temp);    // 设置目标值
        }
      }
      break;
发现两处错误:

1、UART_RxBuffer
这个得改成frame_data,因为根本就不是串口接收数据的第十三位,额,总之得改为frame_data。
2、packet.ch
packet.ch找不到,他是在case SET_P_I_D 里面才处理了packet.ch这个数据,只要不设定PID,那么这个设置目标位置会一直失效。
所以,需要在if语句上面加上一条:
packet.ch = frame_data[CHX_INDEX_VAL];

回复

使用道具 举报

发表于 2022-4-15 09:21:31 | 显示全部楼层
谢谢反馈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 00:42 , Processed in 0.026011 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表