找回密码
 立即注册
楼主: 梁工

51开源,步进电机驱动 程序, 直接驱动, 或驱动步进电机驱动器 一共8个程序

 火.. [复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-10-27 15:32:59
已绑定手机

3

主题

22

回帖

147

积分

注册会员

积分
147
发表于 2025-10-25 15:43:54 | 显示全部楼层
梁工您好,学习细分驱动-STC8H的范例程序遇到不懂的,请问:
1, u16  GetStep(u16 f,  u16 f_set)的参数 f,  f_set是1秒的脉冲数,还是电机转一圈所需的脉冲数?
2, M1_UpPulse=(u16)((u32)(f+f_set)*100mS/2000),  为什么要/2取中心值啊,这能计算精确吗?
3, M1_DownCnt=M1_PulseCnt-M1_UpPulse, 有没有包含均速阶段的脉冲?
4, f1_period = 65536UL - MAIN_Fosc/12/f1;  MAIN_Fosc/12是Timer1的输入脉冲,后面/f1是什么含义
合适的时候希望能指导一下,谢谢老师

截图202510251529482432.jpg

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-10-27 15:32:59
已绑定手机

3

主题

22

回帖

147

积分

注册会员

积分
147
发表于 2025-10-25 16:03:45 | 显示全部楼层
梁老师,学习您的范例程序:细分驱动-STC8H有些不懂的想请教:
1,  u16  GetStep(u16 f, u16 f_set)的参数 f,  f_set是1秒的脉冲数,还是电机转一圈所需脉冲数?
2,  M1_UpPulse = (u16)((u32)(f + f_set)*UpTime / 2000)为什么要/2取中心值,这样还能精确吗?
3,  M1_DownCnt = M1_PulseCnt - M1_UpPulse; 有没有包含匀速转动的脉冲?
4,  f1_period = 65536UL - MAIN_Fosc/12/f1; MAIN_Fosc/12是Timer1输入脉冲,为什么要/f1 ?
希望指点迷津!
截图202510251603412971.jpg

点评

1、f是频率,Hz。 2、初中物理知识:匀加速平均速度 = (V1+V2)/2,频率也一样。 3、注释很清楚:电机开始减速需要走过的脉冲数。 4、period是啥意思知道不? 是周期,周期不就是1/f吗?  详情 回复 发表于 2025-10-25 16:32
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-10-27 15:32:59
已绑定手机

3

主题

22

回帖

147

积分

注册会员

积分
147
发表于 2025-10-25 16:16:23 | 显示全部楼层
求指导
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:216
  • 最近打卡:2025-10-31 11:24:48

83

主题

6818

回帖

1万

积分

超级版主

积分
14626
发表于 2025-10-25 16:32:36 | 显示全部楼层
星火*** 发表于 2025-10-25 16:03
梁老师,学习您的范例程序:细分驱动-STC8H有些不懂的想请教:
1,  u16  GetStep(u16 f, u16 f_set)的参数  ...

1、f是频率,Hz。
2、初中物理知识:匀加速平均速度 = (V1+V2)/2,频率也一样。
3、注释很清楚:电机开始减速需要走过的脉冲数。
4、period是啥意思知道不? 是周期,周期不就是1/f吗?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-10-27 15:32:59
已绑定手机

3

主题

22

回帖

147

积分

注册会员

积分
147
发表于 2025-10-26 08:49:39 | 显示全部楼层
老师,您好
1、2、基本理解;
3、“开始减速需要走过的脉冲数”  是像加速一样的减速阶段吗,还是开始减速之前的脉冲?
4、f1_period是T1的预装值。MAIN_Fosc/12/f1就是待计数值。请问T1怎么控制电机的,溢出一次发一次脉冲吗?

点评

3、比如本次要走10000个脉冲,开始减速需要走过的脉冲数M1_DownCnt=9500,即9500个脉冲开始减速。 4、f1_period是T1的预装值,控制Timer1的中断率,中断里处理驱动脉冲、脉冲计数等等,详情请参考程序源码。  详情 回复 发表于 2025-10-26 10:22
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:216
  • 最近打卡:2025-10-31 11:24:48

83

主题

6818

回帖

1万

积分

超级版主

积分
14626
发表于 2025-10-26 10:22:23 | 显示全部楼层
星火*** 发表于 2025-10-26 08:49
老师,您好
1、2、基本理解;
3、“开始减速需要走过的脉冲数”  是像加速一样的减速阶段吗,还是开始减速 ...

3、比如本次要走10000个脉冲,开始减速需要走过的脉冲数M1_DownCnt=9500,即9500个脉冲开始减速。
4、f1_period是T1的预装值,控制Timer1的中断率,中断里处理驱动脉冲、脉冲计数等等,详情请参考程序源码。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-10-27 15:32:59
已绑定手机

3

主题

22

回帖

147

积分

注册会员

积分
147
发表于 2025-10-26 11:13:45 | 显示全部楼层

好的,谢谢老师
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-10-27 15:32:59
已绑定手机

3

主题

22

回帖

147

积分

注册会员

积分
147
发表于 7 天前 | 显示全部楼层
   
   请问老师,
   1,  f, p取值公式为什么要 *10, 又 - '0' 啊?能否讲解一下原理

   2,  当串口接收完L1, 500, 1000,此时RX1_Cnt的值是多少啊,为什么RX1_Buffer[]要定义有32个元素,这么长?

截图202510271534329398.jpg

截图202510271532469969.jpg


回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-10-27 15:32:59
已绑定手机

3

主题

22

回帖

147

积分

注册会员

积分
147
发表于 7 天前 | 显示全部楼层
老师,这个Timer0/1的初始化函数,当t=0, reload是主时钟周期数,就是频率24M吗
                                                   当t=1, reload是主时钟的周期时间1/24M吗
                                                   为什么要跟MAIN_Fosc相乘,得到是?

截图202510271554129713.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-11-3 02:59 , Processed in 0.126653 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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