标题:
基于stm32的蓝牙遥控车源码 后驱+舵机
[打印本页]
作者:
yanwang
时间:
2018-5-23 21:16
标题:
基于stm32的蓝牙遥控车源码 后驱+舵机
后驱+舵机
单片机源程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
u8 count;
u8 jd;
u8 flag,com;
u16 t=1000;
//const u8 TEXT_Buffer[]="OK";
#define IN5 PCout(1)
#define IN6 PCout(2)
void run(void);
void backrun(void);
void stoprun(void);
void leftrun(void);
void rightrun(void);
int main(void)
{
u16 len;
u16 t;
u16 times=0;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能PB,PE端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5
GPIO_SetBits(GPIOC,GPIO_Pin_1); //PB.5 输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PE.5 端口配置, 推挽输出
GPIO_Init(GPIOC, &GPIO_InitStructure); //推挽输出 ,IO口速度为50MHz
GPIO_SetBits(GPIOC,GPIO_Pin_2);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //LED0-->PB.5 端口配置
GPIO_Init(GPIOC, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5
GPIO_SetBits(GPIOC,GPIO_Pin_0);
jd = 3;
count = 0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(9600);
LED_Init();
delay_init();
TIM3_Int_Init(4,7199);
while(1)
{
times++;
if(times%50==0)LED1=!LED1;
delay_ms(10);
if(USART_RX_STA&0x8000)
{
LED3 = !LED3;
com = USART_RX_BUF[0];
len=USART_RX_STA&0x3fff;
flag = 1;
USART_RX_STA=0;
}
if(flag == 1)
{
switch(com)
{
case '1':
{
run();
LED4 = !LED4;
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
case '2':
{
backrun();
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
case '3':
{
stoprun();
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
case '4':
{
leftrun();
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
case '5':
{
rightrun();
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
default:break;
}
flag = 0;
}
}
}
void run(void)
{
IN5 = 1;
IN6 = 0;
}
void backrun(void)
{
IN5 = 0;
IN6 = 1;
}
void stoprun(void)
{
IN5 = 0;
IN6 = 0;
}
void leftrun(void)
{
jd++;
count = 0;
if (jd == 6)
{
jd = 5;
}
}
void rightrun(void)
{
jd--;
count = 0;
if (jd == 0)
{
jd = 1;
}
}
复制代码
所有资料51hei提供下载:
car.rar
(280.33 KB, 下载次数: 25)
2018-5-24 03:55 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2018-5-24 03:55
原理图能分享吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1