找回密码
 立即注册
楼主: 电子DIY小家

步进电机的相对位置&绝对位置控制, STC32G PWM加减速脉冲输出控制

  [复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2026-03-10 22:08:08

3

主题

55

回帖

477

积分

中级会员

积分
477
发表于 2025-4-16 17:09:20 | 显示全部楼层
再封装一下,加上原点回归搜索,就可以做简易运动控制器了

点评

https://www.stcaimcu.com/thread-22154-1-1.html 我封装了一个库,可以测试看看,无用关心任何底层,速度模式,点位模式,回零都支持  详情 回复 发表于 2026-1-15 10:57
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-31 22:39:34

0

主题

26

回帖

408

积分

中级会员

积分
408
发表于 2025-5-18 21:59:18 | 显示全部楼层
请教大佬,两轴插补时如何代入应用?
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-01 18:52:53
已绑定手机

0

主题

2

回帖

24

积分

新手上路

积分
24
发表于 2025-5-27 11:37:49 | 显示全部楼层
stc8系列可以移植吗
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:281
  • 最近打卡:2026-03-26 07:49:55
已绑定手机

4

主题

6

回帖

838

积分

高级会员

积分
838
发表于 2025-9-1 08:33:37 | 显示全部楼层
感谢大佬分享,先收藏了。回头焊个板子试试。感觉控制伺服加速时间可以短一些。再搞个基底速度,S曲线就完美了。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:232
  • 最近打卡:2026-03-27 08:04:26

16

主题

234

回帖

470

积分

中级会员

积分
470
发表于 2025-10-17 08:42:49 | 显示全部楼层
666,我都是直接怼,没加缓启动和缓停止
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2026-03-10 22:08:08

3

主题

55

回帖

477

积分

中级会员

积分
477
发表于 2025-11-25 16:33:51 | 显示全部楼层
可以同时控制4个电机运动吗?
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-12-27 15:48:59
已绑定手机

3

主题

13

回帖

49

积分

新手上路

积分
49
发表于 2025-12-27 15:48:59 | 显示全部楼层
void PWMB_Init(void)
{
    PWMB_PSCRH = (u8)(1 >> 8);                        //配置预分频系数
    PWMB_PSCRL = (u8)(1 );               
                    
    PWMB_CCER1 = 0x00;                                      //写 CCMRx 前必须先清零 CCxE 关闭通道
    PWMB_CCER2 = 0x00;                           
    PWMB_CCMR1 = 0x68;                                      //通道模式配置 pwm模式1
        PWMB_CCER1 = 0x01;                                      //配置通道1输出使能和极性
               
    PWMB_ARRH = (u8)((2000-1) >> 8);                      //设置周期时间
    PWMB_ARRL = (u8)(2000-1);                 
               
    PWMB_ENO = 0x00;               
    PWMB_ENO = ENO5P;                                      //使能输出
               
    PWMB_PS = 0x00;                                         //高级 PWM 通道输出脚选择位
    PWMB_PS |= PWM5_0;                                      //选择 PWM1_0 通道
       
    PWMB_IER |= (1<<2);                                     //使能更新中断
                    
    PWMB_BKR = 0x80;                                        //使能主输出

    PWMB_CCR5H = 0;                      //设置周期时间
    PWMB_CCR5L = 0;        
       
        PWMB_SR1 = 0;
        PWMB_CR1 = 0x80;
    PWMB_CR1 = 0x00;
    PWMB_ENO = 0x00;  
    PWM1 = 1;
    DIR1 = 1;
        
    Variable_Init();
}
void Pluse_start()
{
       
        StartSave=Current;
        LadderOrderNum=0;//加减速级数序号为0       
       
        PWMB_PSCRH = (u8)((LadderPSC[LadderOrderNum]) >> 8);                        //配置预分频系数
        PWMB_PSCRL = (u8)((LadderPSC[LadderOrderNum]) );   
        PWMB_ARRH = (u8)(LadderARR[LadderOrderNum] >> 8);                        //配置预分频系数
        PWMB_ARRL = (u8)(LadderARR[LadderOrderNum] );     
        PWMB_CCR5H = (u8)((LadderARR[LadderOrderNum]/2) >> 8);                        //配置预分频系数
        PWMB_CCR5L = (u8)((LadderARR[LadderOrderNum]/2) );            
       
        delay_ms(2);

        PWMB_ENO = ENO5P;                                  //启动计数器
       
        PWMB_CR1 = 0x80;
        PWMB_CR1 |= 0x01;
        PWMB_SR1 = 0;
    RunFlag=ON;                             //脉冲输出定位指令执行标志置ON
}
//========================================================================
// 函数: PWMA_ISR中断服务函数
// 描述: 0C1的更新中断重载OC2和OC3的初始比较值(准备置位),0C2和0C3的比较中断,准备翻转电平
// 参数: 无.
// 返回: 无.
// 版本: V1.0, 2022-9-30
//========================================================================
void PWMB_ISR() interrupt 27
{
        long temp;       

        if(PWMB_SR1 & 0x04)
        {
                PWMB_SR1 &= (~0x04);
                这个配置 是不是与中断 检测对不上   不是通道5吗   在这里怎么是通道6了  没有看明白
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:539
  • 最近打卡:2026-03-26 23:16:14
已绑定手机

15

主题

616

回帖

1577

积分

荣誉版主

积分
1577
发表于 2026-1-15 10:57:42 | 显示全部楼层
licha*** 发表于 2025-4-16 17:09
再封装一下,加上原点回归搜索,就可以做简易运动控制器了

https://www.stcaimcu.com/thread-22154-1-1.html
我封装了一个库,可以测试看看,无用关心任何底层,速度模式,点位模式,回零都支持
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2026-03-10 22:08:08

3

主题

55

回帖

477

积分

中级会员

积分
477
发表于 2026-1-28 10:59:06 | 显示全部楼层
xiangz*** 发表于 2026-1-15 10:57
https://www.stcaimcu.com/thread-22154-1-1.html
我封装了一个库,可以测试看看,无用关心任何底层,速度模 ...

感谢楼主分享
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-27 11:22 , Processed in 0.118127 second(s), 95 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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