完善资料让更多小伙伴认识你,还能领取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-004. 57&42步进电机基本旋转实现 * ****************************************************************************** * 说明: * 本例程配套硬石STM32开发板YS-F1Pro使用。 * * 淘宝: * 论坛:硬石电子社区 * 版权归硬石嵌入式开发团队所有,请勿商用。 ****************************************************************************** */ 【1】例程简介 【2】跳线帽情况 【3】操作及现象 /******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/ |
|
相关推荐
|
|
bsp_STEPMOTOR.c文件内容
/** * 函数功能: 驱动器相关GPIO初始化配置 * 输入参数: 无 * 返 回 值: 无 * 说 明: 无 */ static void STEPMOTOR_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* 引脚端口时钟使能 */ STEPMOTOR_TIM_GPIO_CLK_ENABLE(); STEPMOTOR_DIR_GPIO_CLK_ENABLE(); STEPMOTOR_ENA_GPIO_CLK_ENABLE(); /* 驱动器脉冲控制引脚IO初始化 */ GPIO_InitStruct.Pin = STEPMOTOR_TIM_PUL_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(STEPMOTOR_TIM_PUL_PORT, &GPIO_InitStruct); /* 驱动器方向控制引脚IO初始化 */ HAL_GPIO_WritePin(STEPMOTOR_DIR_PORT,STEPMOTOR_DIR_PIN,GPIO_PIN_RESET); GPIO_InitStruct.Pin = STEPMOTOR_DIR_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(STEPMOTOR_DIR_PORT, &GPIO_InitStruct); /* 驱动器脱机使能控制引脚IO初始化 */ HAL_GPIO_WritePin(STEPMOTOR_ENA_PORT,STEPMOTOR_ENA_PIN,GPIO_PIN_RESET); GPIO_InitStruct.Pin = STEPMOTOR_ENA_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(STEPMOTOR_ENA_PORT, &GPIO_InitStruct); } /** * 函数功能: 驱动器定时器初始化 * 输入参数: 无 * 返 回 值: 无 * 说 明: 无 */ void STEPMOTOR_TIMx_Init(void) { TIM_ClockConfigTypeDef sClockSourceConfig; // 定时器时钟 TIM_MasterConfigTypeDef sMasterConfig; // 定时器主模式配置 TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig; // 刹车和死区时间配置 TIM_OC_InitTypeDef sConfigOC; // 定时器通道比较输出 /* 定时器基本环境配置 */ htimx_STEPMOTOR.Instance = STEPMOTOR_TIMx; // 定时器编号 htimx_STEPMOTOR.Init.Prescaler = STEPMOTOR_TIM_PRESCALER; // 定时器预分频器 htimx_STEPMOTOR.Init.CounterMode = TIM_COUNTERMODE_UP; // 计数方向:向上计数 htimx_STEPMOTOR.Init.Period = STEPMOTOR_TIM_PERIOD; // 定时器周期 htimx_STEPMOTOR.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1; // 时钟分频 htimx_STEPMOTOR.Init.RepetitionCounter = STEPMOTOR_TIM_REPETITIONCOUNTER; // 重复计数器 HAL_TIM_Base_Init(&htimx_STEPMOTOR); /* 定时器时钟源配置 */ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; // 使用内部时钟源 HAL_TIM_ConfigClockSource(&htimx_STEPMOTOR, &sClockSourceConfig); /* 初始化定时器比较输出环境 */ HAL_TIM_OC_Init(&htimx_STEPMOTOR); /* 定时器主输出模式 */ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; HAL_TIMEx_MasterConfigSynchronization(&htimx_STEPMOTOR, &sMasterConfig); /* 刹车和死区时间配置 */ sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF; sBreakDeadTimeConfig.DeadTime = 0; sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE; sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; HAL_TIMEx_ConfigBreakDeadTime(&htimx_STEPMOTOR, &sBreakDeadTimeConfig); /* 定时器比较输出配置 */ sConfigOC.OCMode = TIM_OCMODE_TOGGLE; // 比较输出模式:反转输出 sConfigOC.Pulse = Toggle_Pulse; // 脉冲数 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; // 输出极性 sConfigOC.OCNPolarity = TIM_OCNPOLARITY_LOW; // 互补通道输出极性 sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; // 快速模式 sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; // 空闲电平 sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; // 互补通道空闲电平 HAL_TIM_OC_ConfigChannel(&htimx_STEPMOTOR, &sConfigOC, TIM_CHANNEL_1); /* STEPMOTOR相关GPIO初始化配置 */ STEPMOTOR_GPIO_Init(); /* 配置定时器中断优先级并使能 */ HAL_NVIC_SetPriority(STEPMOTOR_TIMx_IRQn, 0, 0); HAL_NVIC_EnableIRQ(STEPMOTOR_TIMx_IRQn); } /******************* (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:18 , Processed in 0.459758 second(s), Total 36, Slave 29 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号