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

相关文章

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm