keil5编写stm32四旋翼飞行机器人程序

keil5编写stm32四旋翼飞行机器人程序


2024年2月1日发(作者:)

keil5编写stm32四旋翼飞行机器人程序

#include

// 定义控制四旋翼飞行机器人的引脚

#define MOTOR1_PIN GPIO_Pin_0

#define MOTOR2_PIN GPIO_Pin_1

#define MOTOR3_PIN GPIO_Pin_2

#define MOTOR4_PIN GPIO_Pin_3

// 定义四旋翼飞行机器人电机的转速控制范围

#define MOTOR_MIN_SPEED 1000

#define MOTOR_MAX_SPEED 2000

void motorInit(void) {

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

// 配置引脚为推挽输出

GPIO__Mode = GPIO_Mode_Out_PP;

GPIO__Speed = GPIO_Speed_50MHz;

GPIO__Pin = MOTOR1_PIN | MOTOR2_PIN |

MOTOR3_PIN | MOTOR4_PIN;

GPIO_Init(GPIOA, &GPIO_InitStructure);

}

void motorSetSpeed(uint16_t motor1, uint16_t motor2,

uint16_t motor3, uint16_t motor4) {

// 限制电机转速在可控范围内

motor1 = (motor1 < MOTOR_MIN_SPEED) ? MOTOR_MIN_SPEED :

motor1;

motor1 = (motor1 > MOTOR_MAX_SPEED) ? MOTOR_MAX_SPEED :

motor1;

motor2 = (motor2 < MOTOR_MIN_SPEED) ? MOTOR_MIN_SPEED :

motor2;

motor2 = (motor2 > MOTOR_MAX_SPEED) ? MOTOR_MAX_SPEED :

motor2;

motor3 = (motor3 < MOTOR_MIN_SPEED) ? MOTOR_MIN_SPEED :

motor3;

motor3 = (motor3 > MOTOR_MAX_SPEED) ? MOTOR_MAX_SPEED :

motor3;

motor4 = (motor4 < MOTOR_MIN_SPEED) ? MOTOR_MIN_SPEED :

motor4;

motor4 = (motor4 > MOTOR_MAX_SPEED) ? MOTOR_MAX_SPEED :

motor4;

// 设置引脚电平控制电机转速

if (motor1 >= MOTOR_MIN_SPEED && motor1 <=

MOTOR_MAX_SPEED) {

GPIO_WriteBit(GPIOA, MOTOR1_PIN, (motor1 >

(MOTOR_MAX_SPEED / 2)) ? Bit_SET : Bit_RESET);

}

if (motor2 >= MOTOR_MIN_SPEED && motor2 <=

MOTOR_MAX_SPEED) {

GPIO_WriteBit(GPIOA, MOTOR2_PIN, (motor2 >

(MOTOR_MAX_SPEED / 2)) ? Bit_SET : Bit_RESET);

}

if (motor3 >= MOTOR_MIN_SPEED && motor3 <=

MOTOR_MAX_SPEED) {

GPIO_WriteBit(GPIOA, MOTOR3_PIN, (motor3 >

(MOTOR_MAX_SPEED / 2)) ? Bit_SET : Bit_RESET);

}

if (motor4 >= MOTOR_MIN_SPEED && motor4 <=

MOTOR_MAX_SPEED) {

GPIO_WriteBit(GPIOA, MOTOR4_PIN, (motor4 >

(MOTOR_MAX_SPEED / 2)) ? Bit_SET : Bit_RESET);

}

}

int main(void) {

motorInit();

while (1) {

// 设置电机转速

motorSetSpeed(1500, 1500, 1500, 1500);

}

return 0;

}


发布者:admin,转转请注明出处:http://www.yc00.com/web/1706746349a1463686.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信