l9110电机驱动代码 STM32
时间: 2023-11-02 07:06:39 浏览: 42
以下是一个简单的L9110电机驱动代码,适用于STM32微控制器。
```
#include "stm32f10x.h"
#define MOTOR_PIN_1 GPIO_Pin_0
#define MOTOR_PIN_2 GPIO_Pin_1
void L9110_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = MOTOR_PIN_1 | MOTOR_PIN_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
void L9110_Set(uint32_t motor, uint8_t level)
{
if (motor == 1)
{
if (level == 1)
{
GPIO_SetBits(GPIOA, MOTOR_PIN_1);
GPIO_ResetBits(GPIOA, MOTOR_PIN_2);
}
else
{
GPIO_ResetBits(GPIOA, MOTOR_PIN_1);
GPIO_ResetBits(GPIOA, MOTOR_PIN_2);
}
}
else if (motor == 2)
{
if (level == 1)
{
GPIO_ResetBits(GPIOA, MOTOR_PIN_1);
GPIO_SetBits(GPIOA, MOTOR_PIN_2);
}
else
{
GPIO_ResetBits(GPIOA, MOTOR_PIN_1);
GPIO_ResetBits(GPIOA, MOTOR_PIN_2);
}
}
}
```
在代码中,L9110_Init()函数用于初始化GPIO端口,用于连接L9110电机驱动器。L9110_Set()函数用于设置电机的状态(正转或反转)。该函数采用两个参数,一个是电机编号(1或2),另一个是电机状态(1为正转,0为停止)。
在使用此代码之前,你需要根据你的电机和电路的实际情况进行适当的修改。