标题:
基于stm32的蓝牙加重力小车源码
[打印本页]
作者:
3083607624
时间:
2017-12-2 17:21
标题:
基于stm32的蓝牙加重力小车源码
基于stm32的蓝牙加无线重力感应小车
单片机源程序如下:
#include "stm32f10x.h"
#include "delay.h"
#include "usart.h"
#include "uart3.h"
#include "pwm.h"
#include "dj.h"
#include "stdlib.h"
#include "math.h"
#define FRONT 5 //前进上限
#define AFTER -5 //后退上限
#define LEFT 5 //左移上限
#define RIGHT -5 //右移上限
#define FA_RATE 25
#define LR_RATE 25
#define SPEED(x,y) TIM_SetCompare1(TIM2,x);TIM_SetCompare2(TIM2,y)
#define DJ(A,B,C,D) DJ1=A;DJ2=B;DJ3=C;DJ4=D
void vehicle_Init(void);
int main(void)
{
u8 *p;
int sum,sum1,sum2;
float sum3;
vehicle_Init(); //小车初始化
while(1)
{
if(USART3_RX_STA&0x8000) //判断一帧数据接收完成
{
p=USART3_RX_BUF; //让p指向第一个角度值
sum=atoi((char *)p);
if(sum > FRONT)
{
DJ(1,0,1,0);
sum1 = sum*FA_RATE;
sum2 = sum*FA_RATE;
}
else if(sum< AFTER)
{
sum = abs(sum);
DJ(0,1,0,1);
sum1 = sum*FA_RATE;
sum2 = sum*FA_RATE;
}
else
{
DJ(0,0,0,0);
sum1 = 0;
sum2 = 0;
}
while(*(p) != 0) p++; //让p指向第二个角度值
p++;
sum=atoi((char *)p);
if(sum > LEFT)
{
sum3 = sum/90.0;
sum1 = sum1 - sum1*sum3;
}
else if(sum < RIGHT)
{
sum = abs(sum);
sum3 = sum/90.0;
sum2 = sum2 - sum2*sum3;
}
SPEED(sum1,sum2);
USART3_RX_STA = 0;
}
}
}
void vehicle_Init()
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断优先级分组
delay_init(); //延时函数初始化
uart_init(9600); //串口1初始化
usart3_init(9600); //串口3初始化
TIM2_PWM_Init(1999,719); //PWM初始化
dj_init(); //电机控制初始化
}
复制代码
所有资料51hei提供下载:
小车.rar
(370.67 KB, 下载次数: 24)
2017-12-3 01:17 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1