关于步进电机发多几次就多走了几步的问题?

2019-07-25 11:59发布

使用这个的测试代码
http://www.openedv.com/forum.php?mod=viewthread&tid=76190&highlight=%B2%BD%BD%F8%B5%E7%BB%FA
驱动器是LV8728,使用了128个细分,发25600个脉冲可以完整转了一圈,但是分开发脉冲就一圈就多走出了一点。
代码如下:
int main(void) {        u8 i;        u8 keyval;        NVIC_Configuration();        delay_init();                     //延时函数初始化        uart_init(115200);                 //串口初始化为115200        usmart_dev.init(72);         //初始化USMART        LED_Init();                                //初始化与LED连接的硬件接口        KEY_Init();                                //初始化按键        Driver_Init();                //驱动器初始化        TIM1_OPM_RCR_Init(999, 72 - 1); //1MHz计数频率  单脉冲+重复计数模式
        while (1) {                /*keyval = KEY_Scan(0);                if (keyval == WKUP_PRES) {                        Locate_Abs(0, 500); //按下WKUP,回零点                } else if (keyval == KEY0_PRES) {                        Locate_Rle(200, 500, CW); //按下KEY0,以500Hz的频率 顺时针发200脉冲                } else if (keyval == KEY1_PRES) {                        Locate_Rle(400, 500, CCW); //按下KEY1,以500Hz的频率 逆时针发400脉冲                }                delay_ms(10);                i++;                if (i == 50) {                        i = 0;                        LED1 = !LED1;                }*/              for(u8 t=0;t<40;t++){
                 Locate_Rle(640, 9000, CW);
              delay_s(1);

               }        }}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。