#include "stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "Key.h" #include "Motor.h" uint8_t KeyNum; int8_t Speed; int main(void) { OLED_Init(); Motor_Init(); Key_Init(); //Motor_SetSpeed(1); OLED_ShowString(1,1,"Speed:"); while(1) { KeyNum = Key_GetNum(); if(KeyNum == 1) { Speed += 50; if(Speed > 100) { Speed = -100; } } Motor_SetSpeed(Speed); OLED_ShowSignedNum(1,7,Speed,3); } }
时间: 2024-04-08 16:31:48 浏览: 133
根据你提供的代码,我看到你使用了一个名为Motor_SetSpeed()的函数来设置电机的速度。你还使用OLED显示屏来显示速度值。
在主循环中,你先调用Key_GetNum()函数获取按键值,然后判断如果按键值为1(可能是你定义的某个按键),则将Speed增加50。如果Speed超过了100,将其设置为-100。
接下来,你调用Motor_SetSpeed(Speed)函数来设置电机的速度,传入的参数是Speed变量的值。最后,使用OLED_ShowSignedNum()函数在OLED显示屏上显示Speed的数值。
根据这段代码,当按下按键1时,Speed的值会逐步增加50,并且在达到100后循环重置为-100。Motor_SetSpeed()函数会根据Speed的值来控制电机的速度。请确保Motor_Init()函数正确初始化了电机和相关引脚。
需要注意的是,这段代码只实现了速度的控制,并没有具体实现转向功能。要实现转向,你可能需要使用两个电机分别控制左右轮,并根据需要控制它们的旋转方向和速度来实现不同的转向动作。具体实现细节可能需要根据你使用的硬件和电路配置进行调整。
阅读全文