|
簡單控制步進(jìn)電機
可實現(xiàn)角度控制
單片機源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "key.h"
- GPIO_InitTypeDef GPIO_Initure;
- TIM_HandleTypeDef TIM3_PWM_Handler;
- TIM_OC_InitTypeDef TIM3_OC_Init;
- void dianji_init()
- {
- GPIO_InitTypeDef GPIO_Initure; //創(chuàng)建io口結(jié)構(gòu)體
-
- __HAL_RCC_GPIOI_CLK_ENABLE(); //使能GPIOI時鐘
-
- GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1; //PI0 PI1
- GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //輸出模式
- GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
- GPIO_Initure.Pull=GPIO_PULLUP; //上拉
- HAL_GPIO_Init(GPIOI,&GPIO_Initure); //初始化PI0 PI1
-
- }
- void dianji(u16 time,u16 maichong,u16 fx)
- {
- u16 mc=0;
- u16 clk=1;
- if(fx==1)
- HAL_GPIO_WritePin(GPIOI,GPIO_PIN_0,GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOI,GPIO_PIN_0,GPIO_PIN_RESET);
-
-
- while(mc<maichong)
- { mc++;
- clk=!clk;
-
- if(clk==1)
- HAL_GPIO_WritePin(GPIOI,GPIO_PIN_1,GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOI,GPIO_PIN_1,GPIO_PIN_RESET);
-
- delay_ms(time);
-
- }
- }
- int main(void)
- {
- dianji_init();
- Cache_Enable(); //打開L1-Cache
- HAL_Init(); //初始化HAL庫
- Stm32_Clock_Init(432,25,2,9); //設(shè)置時鐘,216Mhz
- delay_init(216); //延時初始化
- while(1)
- {
- dianji(10,100,1);//以1圈/秒的速度旋轉(zhuǎn)90度角
- delay_ms(1000);
- }
- }
-
復(fù)制代碼
所有資料51hei提供下載:
180724電機驅(qū)動測試.7z
(577.25 KB, 下載次數(shù): 38)
2019-6-11 06:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|