STM32控制步进电机程序.docx

STM32控制步进电机程序.docx

ID:60779118

大小:10.76 KB

页数:3页

时间:2020-12-18

STM32控制步进电机程序.docx_第1页
STM32控制步进电机程序.docx_第2页
STM32控制步进电机程序.docx_第3页
资源描述:

《STM32控制步进电机程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.主函数#include"sys.h"#include"usart.h"#include"delay.h"#include"led.h"#include"timer.h"#include"key.h"intmain(void){u8t;u32v=100;Stm32_Clock_Init(9);//系统时钟设置delay_init(72);//延时初始化uart_init(72,9600);//串口初始化LED_Init();//初始化与LED连接的硬件接口KEY_Init();//初始化与按键连接的硬件接口RCC->APB2ENR

2、=1

3、<<2;//使能PORTA时钟GPIOA->CRL&=0X0FFFFFFF;GPIOA->CRL

4、=0X;//PA7推挽输出GPIOA->ODR

5、=1<<7;//PA7输出高GPIOA->CRL&=0XFF0FFFFF;GPIOA->CRL

6、=0X;//PA5推挽输出GPIOA->ODR

7、=1<<5;//PA5输出高LED1=1;LED0=1;while(1){t=KEY_Scan(0);//得到键值switch(t){caseKEY0_PRES:v=v+10;TIM3_Int_Init(v,7199);//10Khz的计数频率TIM3-

8、>CR1

9、=0x01;break;caseKEY1_PRES:v=v-10;TIM3_Int_Init(v,7199);//10Khz的计数频率TIM3->CR1

10、=0x01;//使能定时器3break;caseWKUP_PRES:TIM3->CR1&=0xFE;//关定时器3;break;}}}1.LED初始化#include"sys.h"#include"led.h"voidLED_Init(void){RCC->APB2ENR

11、=1<<2;//使能PORTA时钟RCC->APB2ENR

12、=1<<5;//使能PORTD时钟GPIOA-

13、>CRH&=0XFFFFFFF0;GPIOA->CRH

14、=0X;//PA8推挽输出GPIOA->ODR

15、=1<<8;//PA8输出高GPIOD->CRL&=0XFFFFF0FF;GPIOD->CRL

16、=0X;//PD.2推挽输出GPIOD->ODR

17、=0x0004;//PD.2输出高}2.按键初始化#include"key.h"#include"delay.h"voidKEY_Init(void){RCC->APB2ENR

18、=1<<2;//使能PORTA时钟RCC->APB2ENR

19、=1<<4;//使能PORTC时钟JTAG_Set(SW

20、D_ENABLE);//关闭JTAG,开启SWDGPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入GPIOA->CRL

21、=0X;GPIOA->CRH&=0X0FFFFFFF;//PA15设置成输入GPIOA->CRH

22、=0X;GPIOA->ODR

23、=1<<15;//PA15上拉,PA0默认下拉GPIOC->CRL&=0XFF0FFFFF;//PC5设置成输入GPIOC->CRL

24、=0X;GPIOC->ODR

25、=1<<5;//PC5上拉}u8KEY_Scan(u8mode){staticu8key_up=1;//按键按松开标

26、志if(mode)key_up=1;//支持连按if(key_up&&(KEY0==0

27、

28、KEY1==0

29、

30、WK_UP==1)){delay_ms(10);//去抖动key_up=0;if(KEY0==0)returnKEY0_PRES;elseif(KEY1==0)returnKEY1_PRES;elseif(WK_UP==1)returnWKUP_PRES;}elseif(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;return0;//无按键按下}1.定时器初始化#include"timer.h"#incl

31、ude"led.h"u32i=0;//定时器3中断服务程序voidTIM3_IRQHandler(void){if(TIM3->SR&0X0001)//溢出中断{//GPIOA->ODR^=0x0100;GPIOA->ODR^=0x0080;LED0=!LED0;}TIM3->SR&=~(1<<0);//清除中断标志位}voidTIM3_Int_Init(u16arr,u16psc){RCC->APB1ENR

32、=1<<1;//TIM3时钟使能TIM3->ARR=arr;//设定计数器自动重装值TIM3->PSC=psc;//预分频器设置T

33、IM3->DIER

34、=1<<0;//允许更新中断//TIM3->CR1

35、=0x01;//使能定时器3MY_NVIC_Init(3,3,TIM3_IRQn,2);//抢占3,子优先级3,组2}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。