STM32用IO口控制步进电机的简单程序

2024-06-04 18:32

本文主要是介绍STM32用IO口控制步进电机的简单程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

练习IO口库函数操作。

[cpp]  view plain copy print ?
  1. //相序  
  2. uint16_t phasecw[4] ={0x2000,0x0001,0x0004,0x0008};// D-C-B-A  
  3. uint16_t phaseccw[4]={0x0008,0x0004,0x0001,0x2000};// A-B-C-D  


 

[cpp]  view plain copy print ?
  1. //步进电机相关IO口初始化  
  2. // IN4: PC13  
  3. // IN3: PC0  
  4. // IN2: PC2  
  5. // IN1: PC3  
  6. void Moto_Init(void)  
  7. {  
  8.     GPIO_InitTypeDef GPIO_InitStructure;  
  9.   
  10.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);            //GPIO CLOCK ENABLE  
  11.       
  12.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;  
  13.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽输出        
  14.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //50MHz速率  
  15.     GPIO_Init(GPIOC, &GPIO_InitStructure);            
  16.     GPIO_ResetBits(GPIOC,GPIO_Pin_13);                  //输出低电平  
  17.   
  18.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;  
  19.     GPIO_Init(GPIOC, &GPIO_InitStructure);  
  20.     GPIO_ResetBits(GPIOC,GPIO_Pin_0);  
  21.   
  22.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;  
  23.     GPIO_Init(GPIOC, &GPIO_InitStructure);  
  24.     GPIO_ResetBits(GPIOC,GPIO_Pin_2);  
  25.   
  26.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;  
  27.     GPIO_Init(GPIOC, &GPIO_InitStructure);  
  28.     GPIO_ResetBits(GPIOC,GPIO_Pin_3);  
  29. }  


 

[cpp]  view plain copy print ?
  1. //电机正转  
  2. void Motorcw(void)  
  3. {  
  4.     uint8_t i;  
  5.   
  6.     for(i=0;i<4;i++)  
  7.     {  
  8.         GPIO_Write(GPIOC,phasecw[i]);  
  9.         delay_ms(4);  
  10.     }  
  11. }  
  12.   
  13. //电机反转  
  14. void Motorccw(void)  
  15. {  
  16.     uint8_t i;  
  17.     for(i=0;i<4;i++)  
  18.     {  
  19.         GPIO_Write(GPIOC,phaseccw[i]);  
  20.         delay_ms(4);  
  21.     }  
  22. }  
  23.   
  24. //点击停止  
  25. void MotorStop(void)  
  26. {  
  27.     GPIO_Write(GPIOC,0x0000);  
  28. }  


记得使能IO口时钟。

 


这篇关于STM32用IO口控制步进电机的简单程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1030784

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、