這是很適合新手的直流電機驅動完整代碼。
可以根據按鍵來控制電機的正轉、反轉和停止
單片機源程序如下:
- #include "stm32f10x.h" //官方庫
- #include "stm32f10x_gpio.h"
- #include "stm32f10x_rcc.h"
-
- #include "motor.h"
- #include "delay.h"
- #include "key.h"
-
-
- int main(void)
- {
- Motor_12_Config(); //298電機驅動初始化
- delay_init(); //延時函數初始化
- key_init(); //按鍵初始化
-
- while(1)
- {
- Motor_1_PRun(); //正轉
- Motor_2_PRun();
-
- delay_ms(10000); //轉三秒
- delay_ms(10000);
- delay_ms(10000);
-
- Motor_1_NRun(); //反轉
- Motor_2_NRun();
-
- delay_ms(10000); //轉三秒
- delay_ms(10000);
- delay_ms(10000);
-
- Motor_1_STOP(); //停止
- Motor_2_STOP();
-
- delay_ms(10000); //停三秒
- delay_ms(10000);
- delay_ms(10000);
- }
- }
復制代碼- #include "motor.h" //導入led頭文件
- #include "stm32f10x.h" //導入STM32官方庫
- #include "stm32f10x_rcc.h" //導入STM32的RCC時鐘庫
- #include "delay.h" //延時庫
-
- void Motor_12_Config(void) //定義初始化函數
- {
- GPIO_InitTypeDef GPIO_InitStructure; //定義GPIO_InitTypeDef結構體
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); //開啟引腳時鐘
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5; //定義IN引腳
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //通用推挽輸出
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //設置輸出功率
- GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA的引腳參數,寫進
-
- GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5); //所有引腳拉低
- }
-
- void Motor_1_STOP(void)
- {
- IN1(High);
- IN2(High);
- }
-
- void Motor_1_PRun(void)
- {
- IN1(Low);
- IN2(High);
- }
-
- void Motor_1_NRun(void)
- {
- IN1(High);
- IN2(Low);
- }
-
- void Motor_2_STOP(void)
- {
- IN3(High);
- IN4(High);
- }
-
- void Motor_2_PRun(void)
- {
- IN3(Low);
- IN4(High);
- }
-
- void Motor_2_NRun(void)
- {
- IN3(High);
- IN4(Low);
- }
復制代碼
所有資料51hei提供下載:
直流電機驅動.rar
(276.3 KB, 下載次數: 77)
2018-11-13 01:05 上傳
點擊文件名下載附件
完整代碼
|