完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
【HAL库每天一例】系列例程从今天开始持续更新。。。。。
我们将坚持每天至少发布一个基于YS-F1Pro开发板的HAL库例程, 该系列例程将带领大家从零开始使用HAL库,后面会持续添加模块应用例程。 同样的,我们还程序发布基于HAL库的指导文档和视频教程,欢迎持续关注,并提出改进意见。 参考文档见: 硬石电机控制专题指导手册 例程下载: 资料包括程序、相关说明资料以及软件使用截图 百度云盘:https://pan.baidu.com/s/1slN8rIt 密码:u6m1 360云盘:https://yunpan.cn/OcPiRp3wEcA92u密码 cfb6 (硬石YS-F1Pro开发板HAL库例程持续更新5. 软件设计之电机控制(HAL库版本)步进电机.zip)/** ****************************************************************************** * 硬石YS-F1Pro开发板例程功能说明 * * 例程名称: YSF1_HAL_MOTOR-005. 57&42步进电机旋转控制实现 * ****************************************************************************** * 说明: * 本例程配套硬石STM32开发板YS-F1Pro使用。 * * 淘宝: * 论坛:硬石电子社区 * 版权归硬石嵌入式开发团队所有,请勿商用。 ****************************************************************************** */ 【1】例程简介 【2】跳线帽情况 【3】操作及现象 |
|
相关推荐
|
|
[size=0.83em]CubeMX_1.jpg (199.65 KB, 下载次数: 0)
下载附件 [color=rgb(153, 153, 153) !important]5 小时前 上传 |
|
|
|
|
|
main.c文件内容
/** ****************************************************************************** * 文件名程: main.c * 作 者: 硬石嵌入式开发团队 * 版 本: V1.0 * 编写日期: 2015-10-04 * 功 能: 步进电机控制实现 ****************************************************************************** * 说明: * 本例程配套硬石stm32开发板YS-F1Pro使用。 * * 淘宝: * 论坛:http://www.ing10bbs.com * 版权归硬石嵌入式开发团队所有,请勿商用。 ****************************************************************************** */ /* 包含头文件 ----------------------------------------------------------------*/ #include "stm32f1xx_hal.h" #include "StepMotor/bsp_STEPMOTOR.h" #include "key/bsp_key.h" /* 私有类型定义 --------------------------------------------------------------*/ /* 私有宏定义 ----------------------------------------------------------------*/ #define STEPMOTOR_MICRO_STEP 32 // 步进电机驱动器细分,必须与驱动器实际设置对应 /* 私有变量 ------------------------------------------------------------------*/ uint8_t dir=0; // 0 :顺时针 1:逆时针 uint8_t ena=0; // 0 :正常运行 1:停机 /* 扩展变量 ------------------------------------------------------------------*/ extern __IO uint16_t Toggle_Pulse; /* 步进电机速度控制,可调节范围为 650 -- 3500 ,值越小速度越快 */ /* * 当步进电机驱动器细分设置为1时,每200个脉冲步进电机旋转一周 * 为32时,每6400个脉冲步进电机旋转一周 * 下面以设置为32时为例讲解: * pulse_count用于记录输出脉冲数量,pulse_count为脉冲数的两倍, * 比如当pulse_count=12800时,实际输出6400个完整脉冲。 * 这样可以非常方便步进电机的实际转动圈数,就任意角度都有办法控制输出。 * 如果步进电机驱动器的细分设置为其它值,pulse_count也要做相应处理 * */ __IO uint32_t pulse_count; /* 脉冲计数,一个完整的脉冲会增加2 */ /* 私有函数原形 --------------------------------------------------------------*/ /* 函数体 --------------------------------------------------------------------*/ /** * 函数功能: 主函数. * 输入参数: 无 * 返 回 值: 无 * 说 明: 无 */ int main(void) { uint8_t key1_count=1; /* 复位所有外设,初始化Flash接口和系统滴答定时器 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); KEY_GPIO_Init(); /* 高级控制定时器初始化并配置PWM输出功能 */ STEPMOTOR_TIMx_Init(); /* 确定定时器 */ HAL_TIM_Base_Start(&htimx_STEPMOTOR); /* 启动比较输出并使能中断 */ HAL_TIM_OC_Start_IT(&htimx_STEPMOTOR,TIM_CHANNEL_1); /* 无限循环 */ while (1) { if(KEY1_StateRead()==KEY_DOWN) // 功能选择 { key1_count++; if(key1_count==5) key1_count=1; } if(KEY2_StateRead()==KEY_DOWN) // 功能调节 { switch(key1_count) { case 1: Toggle_Pulse-=50; if(Toggle_Pulse<300) // 最快速度限制 Toggle_Pulse=300; break; case 2: Toggle_Pulse+=100; if(Toggle_Pulse>3500) // 最慢速度限制 Toggle_Pulse=3500; break; case 3: // 方向控制 if(dir==0) { STEPMOTOR_DIR_REVERSAL(); // 反转 dir=1; } else { STEPMOTOR_DIR_FORWARD(); // 正转 dir=0; } break; case 4: // 脱机使能控制 if(ena==0) { STEPMOTOR_OUTPUT_ENABLE(); // 停机 ena=1; } else { pulse_count=0; // 重新计数 STEPMOTOR_OUTPUT_DISABLE(); // 正常运行 ena=0; } break; default: break; } } if(pulse_count==STEPMOTOR_MICRO_STEP*200*2*10) // 转动10圈后停机 { STEPMOTOR_OUTPUT_DISABLE(); // 停机 } } } /** * 函数功能: 定时器比较输出中断回调函数 * 输入参数: htim:定时器句柄指针 * 返 回 值: 无 * 说 明: 无 */ void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) { __IO uint16_t count; count=__HAL_TIM_GET_COUNTER(&htimx_STEPMOTOR); __HAL_TIM_SET_COMPARE(&htimx_STEPMOTOR,TIM_CHANNEL_1,count+Toggle_Pulse); pulse_count++; } /******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/ |
|
|
|
|
|
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12024 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 05:21 , Processed in 1.203676 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号