Stm32旧版库函数10——A4988 单个步进电机 16拍

news2024/11/24 10:50:33

 

#include "stm32f10x_lib.h"
#include "motor.h"

u8 Step;
void GPIO_Key(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;                 //    选中管脚9
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         // 上拉输入
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;         // 最高输出速率10MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);                 // 选择A端口
 
}
void GPIO_steper(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;                 //    选中管脚9
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //GPIO_Mode_Out_PP为推免输出    GPIO_Mode_AF_PP为复用推免输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;         // 最高输出速率10MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);
}

void MotorRan(void)
{
  if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==Bit_RESET)
  {
       GPIO_ResetBits(GPIOA,GPIO_Pin_4);  //使能
       GPIO_SetBits(GPIOA,GPIO_Pin_3);       //正转
    GPIO_WriteBit(GPIOA,GPIO_Pin_2,(BitAction)!GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_2));  //输出半个脉冲
  }
  else if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==Bit_RESET)
  {
       GPIO_ResetBits(GPIOA,GPIO_Pin_4);     //使能
    GPIO_ResetBits(GPIOA,GPIO_Pin_3);     //反转
    GPIO_WriteBit(GPIOA,GPIO_Pin_2,(BitAction)!GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_2));       //输出半个脉冲
  }
  //else
   // GPIO_ResetBits(GPIOA,GPIO_Pin_4);
}

/*******************************************************************************
// 使用单片机STM32F103C8T6
// 晶振:8.00M
// 编译环境 Keil uVision4
// 在3.3V的供电环境下,就能运行
// 波特率 9600
*******************************************************************************/
#include "stm32f10x_lib.h"
#include "usart.h"
#include "delay.h"
#include "motor.h"
#include "sys_config.h"
#include  <math.h>    //Keil library  


#define   uchar unsigned char
#define   uint unsigned int    

//定时器3中断服务程序    
void TIM3_IRQHandler(void)
{                                       
    if(TIM3->SR&0X0001)//溢出中断
    {
     MotorRan();                                            
    }                   
    TIM3->SR&=~(1<<0);//清除中断标志位         
}
  /*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
** 输    入    : 无
** 输    出    : 无
** 返    回    : 无
********************************************************************************
*/
int main(void)
{
  Stm32_Clock_Init(3);         //配置RCC 24m
  Delayms(10);
  GPIO_Configuration();         //配置GPIO
  USART1_Configuration();     //配置串口1
  GPIO_Key();
  GPIO_steper();
  //Timerx_Init(10000,2399);      //定时1s
  Timerx_Init(150,2399);      //定时0.0015s
  //Step=0;
  while(1)
 {

//    USART1_SendData('X');             
//    USART1_SendData(0X0D);     //换行
//    USART1_SendData(0X0A);     //回车
    Delayms(5);                 //延时
  }
}

/*************结束***************/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/89636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用java实现 分布式任务调度平台XXL-JOB 部署及使用

XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。 详细的特性和优点参考官网地址&#xff1a;https://www.xuxueli.com/xxl-job/ 一、任务调度 0.下载官方源…

为什么微服务一定要有网关呢

一、什么是服务网关 服务网关 路由转发 过滤器1、路由转发&#xff1a;接收一切外界请求&#xff0c;转发到后端的微服务上去&#xff1b; 2、过滤器&#xff1a;在服务网关中可以完成一系列的横切功能&#xff0c;例如权限校验、限流以及监控等&#xff0c;这些都可以通过…

Anaconda环境GDAL库基于whl文件的配置方法

本文介绍在Anaconda环境下&#xff0c;基于.whl文件安装Python中高级地理数据处理库GDAL的方法。 在文章Anaconda下Python中GDAL模块的下载与安装方法&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/124307748&#xff09;中&#xff0c;我们介绍了基于…

[附源码]计算机毕业设计的实验填报管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

我是如何使用docker安装nginx并配置https服务的

文章目录前言一、前期准备1、备案好的域名2、安装nginx2.1 下载nginx的docker镜像2.2 新建用于映射的目录2.3 从容器中拷贝nginx配置2.4 启动 nginx二、配置步骤1、申请免费的证书2、下载证书3、把证书上传至服务器4、配置 .conf 文件4.1 后端接口服务 api.conf 配置4.2 前端项…

数据智仓功能介绍(四)

字段设置 使用场景介绍 字段设置&#xff0c;即在数据智仓中&#xff0c;对输入上一数据处理节点的字段进行显示和隐藏、排序、重命名等操作。 操作配置 对数据类型的转换&#xff0c;主要用户复杂数据的处理的情况下 &#xff0c;例如某个字段是JSON &#xff0c;那么通过数…

用 JS 解析 excel 文件需要分几步

八月长江万里晴&#xff0c;千帆一道带风轻。 大家好&#xff0c;我是嘿嘿&#xff0c;今天来聊一聊如何使用 JS 来解析 excel 文件&#xff0c;当然不是直接使用 exceljs、sheetjs 之类的库&#xff0c;那就没意思了&#xff0c;而是主要说一下 JS 解析 excel 表格是如何实现的…

STM32F4 IAP 跳转 APP问题

1. 概念 IAP 的作用&#xff0c;网上其他资料已经有很多介绍了&#xff0c;这里放一个链接&#xff0c;不进行深入的介绍。本文的关注重点是Bootloader在跳转APP程序中出现的问题。 IAP的实现原理讲解以及中断向量表的偏移 2. 程序 本人主要做应用层的开发&#xff0c;所有Boo…

深蓝学院-多传感器融合定位课程-第7章-基于滤波的融合方法I

专栏文章: 深蓝学院-多传感器融合定位课程-第1章-概述_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第2章-3D激光里程计I_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第3章-3D激光里程计II_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第…

自学100天,零基础转行软件测试,我要以更好的姿态奔赴下一场山海~

三年大专一场空 专业是电子商务&#xff0c;18年毕业&#xff0c;当时在报考时时觉得电子商务挺高大上的&#xff0c;觉得电商肯定会有前途&#xff0c;以后毕业肯定好找工作&#xff0c;跟大多数人一样&#xff0c;我开始幻想我以后毕业以后的纸醉金迷的生活&#xff0c;我以…

落地 DevOps,探索高效研发运营一体化解决方案

前言与概述 伴随着企业业务的快速发展&#xff0c;为了支撑业务发展&#xff0c;提高 IT 对业务的支撑能力建设。在研发工程协同方面&#xff0c;希望加强代码管理&#xff0c;实现持续构建、自动化测试、自动化部署、自动化运维&#xff0c;同时加强产品的安全和质量管理&…

华为路由器 静态路由

需求&#xff1a; 实现 PC1 与 PC2 互通 1、拓扑图 主机IP掩码网关PC1192.168.10.10255.255.255.0192.168.10.1PC2192.168.40.40255.255.255.0192.168.40.1PC3192.168.30.30255.255.255.0192.168.30.1 2、R1 路由器 <Huawei>undo ter mo Info: Current terminal monit…

c#调用c++捕获SEH异常

C代码&#xff1a; extern "C" __declspec(dllexport) int ExceptionTest() { int* pointer NULL;*pointer 100; return 100; }c#代码&#xff1a; class C_Sharp_Call_C__{[DllImport("testDll.dll", CallingConvention CallingConvention.Cdecl)]p…

SpringMVC:Spring与SpringMVC各自bean加载控制(2)

问题提出&#xff1a;学习Spring技术的时候在config目录下创建了一个配置类SpringConfig。现在学习SpringMVC技术在config目录下又创建一个SpringMvcConfig配置类。这两个配置类都需要加载资源&#xff0c;那么它们分别都需要加载哪些内容? 目录结构&#xff1a; config目录存…

[附源码]Python计算机毕业设计房屋租赁管理系统设计Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

完全可用的迁移docker目录方案(centos/redhat)

完全可用的迁移docker目录方一、前提二、具体操作如下&#xff1a;2.1 先模拟运行一个 docker mysql2.2 先停docker进程2.3 新建存储目录2.4 修改启动默认的目录2.4.1 使用软链接(推荐)2.4.2 修改/etc/docker/daemon.json &#xff08;推荐&#xff09;2.4.3 指定容器启动参数&…

【深度学习】PyTorch深度学习实践 - Lecture_12_Basic_RNN

文章目录一、RNN介绍1.1 RNN为什么能处理有序数据&#xff1f;1.2 RNNCell内部剖析二、How to use RNNCell In PyTorch2.1 参数分析2.2 PyTorch代码实现三、How to use RNN In PyTorch3.1 参数分析3.2 NumLayers3.3 PyTorch代码实现3.4 其他参数四、Example1&#xff1a;Using …

fpga实操训练(锁相环pll)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 锁相环pll是fpga区别于stm32、soc很重要的一个特征。通常来说&#xff0c;输入的晶振一般是25m、50m这样的&#xff0c;不一定能满足功能的开发。这…

QT—QList与QLinkedList类的常用方法

QList<T>维护了一个指针数组&#xff0c;数组元素指向每一个链表项&#xff0c;因此QList<T> 提供了基于下标的快速访问。QLinkedList<T>是一个链式列表&#xff0c;不能使用下标访问&#xff0c;与QList相比&#xff0c;当对一个很大的列表进行插入操作时&a…

最近爆火chatGTP是人工智能还是人工智障?

关于chatGTP和一些话题? OpenAI 发布了 ChatGPT&#xff0c;是一个可以对话的方式进行交互的模型&#xff0c;因为它的智能化&#xff0c;得到了很多用户的欢迎。 ChatGPT是InstructGPT的兄弟模型&#xff0c;可以以对话的形式与用户交互&#xff0c;这使得ChatGPT能够回答问…