这个代码是我一个项目的初始代码,可以在这个基础上扩展很多其他的东西,比如ros激光雷达、机械臂、视觉算法之类的,硬件用的lm2596降压到5V,1117降压到3.3v,298n电机驱动(tb6612也是一样的)。下载用4线的stlink就好了,蓝牙模块随便什么牌子都可以,线不连错就行,代码比较简单,分享给大家,大家有相关项目的时候可以节省下“造轮子”的时间哈哈。
main.c如下:
#include "pwm.h"
#include "system.h"
#include "SysTick.h"
#include "motor.h"
#include "usart.h"
#include "ALLDATA.h"
#include "control.h"#include "oled.h"
int main()
{
SysTick_Init(72);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
TIM2_CH34_PWM_Init(7199,0);
USART1_Init(9600);
// TIM_SetCompare1(TIM2,185);
MOTOR_Init(); OLED_Init();
while(1)
{
motor_control();
}
}
控制函数部分如下:
void motor_control (void)
{
if(r==0x38)
{
start_flag=1;
}
else if(r==0x37)
{
start_flag=0;
car_stop();
}
if(start_flag==1)
{
if(r==0x30)
{
car_go();
}
else if(r==0x31)
{
car_back();
}
else if(r==0x32)
{
car_left();
}
else if(r==0x33)
{
car_right();
}
else if(r==0x34)
{
car_stop();
}
}
要注意的是手机app和蓝牙通信发送的是ASCII码形式, 需要if(r==0x31)判断,而蓝牙模块与蓝牙模块配对时采用的hex16进制数据发送,直接else if(r==1)就行了。
全部程序51hei下载地址:
履带车oled.7z
(189.8 KB, 下载次数: 87)
|