代码附上来了
前灯 PB12
右灯pb13
zuo pb14
蜂鸣器 PB15
- /*
- 硬件链接:
- 左电机控制端口:PA3、PA4
- 右电机控制端口:PA1、PA2
- */
- #include "stm32f10x.h"//声明头文件
- #include "stm32f10x_exti.h"
- #include "stm32f10x_gpio.h"
- #include "stm32f10x_rcc.h"
- #include "stm32f10x_usart.h"
- #define uchar unsigned char//宏定义
- #define uint unsigned int//宏定义
- #define AA 35//左轮速度调节值
- #define BB 35//右轮速度调节值
- uchar a=0;//定义一个变量a,用来读取串口的数据
- /*有参数延时函数*/
- void delay(__IO uint32_t nCount)
- {
- for (; nCount != 0; nCount--);
- }
- unsigned int temp=0;
- unsigned char rebuf[5];
- unsigned int start=0;
- void GPIO_DengConfiguration()
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- /* 初始化LED的GPIO管脚,配置为推挽输出 */ //设置端口
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; //车灯GPIO_Pin12,13,14端口 15蜂鸣器端口
- //设置对端口的模式
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为 推挽(Push-Pull)输出
- //
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //最大输出速度为50MHz
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- }
- //前进子程序
- void go1()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(500000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //前进子程序
- void go2()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(400000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //前进子程序
- void go3()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(300000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //前进子程序
- void go4()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(200000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //前进子程序
- void go5()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(100000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //前进子程序
- void go6()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //小车后退的子程序
- void hui1()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(500000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //小车后退的子程序
- void hui2()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(400000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //小车后退的子程序
- void hui3()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(300000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //小车后退的子程序
- void hui4()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(200000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //小车后退的子程序
- void hui5()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(100000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //小车后退的子程序
- void hui6()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
-
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //小车左转弯子程序
- void turnleft()
- {
- GPIO_ResetBits(GPIOB,GPIO_Pin_13);//转向灯打开
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
-
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子停止
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子停止
- delay(250000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //小车右转弯子程序
- void turnright()
- {
- GPIO_ResetBits(GPIOB,GPIO_Pin_14);//转向灯打开
-
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子停止
-
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_ResetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子停止
- delay(250000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //停止子程序
- void down()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2);
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左右轮全部停止
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- int main()//主程序
- {
- while(1)//死循环
- {
- if(a==0x14||a==0x15||a==0x54||a==0x55||a==0x64||a==0x65)//如果是就前进
- go1();
- if(a==0x16||a==0x17||a==0x56||a==0x57||a==0x66||a==0x67)//如果是就前进
- go2();
- if(a==0x18||a==0x19||a==0x58||a==0x59||a==0x68||a==0x69)//如果是就前进
- go3();
- if(a==0x1a||a==0x1b||a==0x5a||a==0x5b||a==0x6a||a==0x6b)//如果是就前进
- go4();
- if(a==0x1c||a==0x1d||a==0x5c||a==0x5d||a==0x6c||a==0x6d)//如果是就前进
- go5();
- if(a==0x1e||a==0x1f||a==0x5e||a==0x5f||a==0x6e||a==0x6f)//如果是就前进
- go6();
- if(a==0x24||a==0x25||a==0x74||a==0x75||a==0x84||a==0x85)//如果是就后退
- hui1();
- if(a==0x26||a==0x27||a==0x76||a==0x77||a==0x86||a==0x87)//如果是就后退
- hui2();
- if(a==0x28||a==0x29||a==0x78||a==0x79||a==0x88||a==0x89)//如果是就后退
- hui3();
- if(a==0x2a||a==0x2b||a==0x7a||a==0x7b||a==0x8a||a==0x8b)//如果是就后退
- hui4();
- if(a==0x2c||a==0x2d||a==0x7c||a==0x7d||a==0x8c||a==0x8d)//如果是就后退
- hui5();
- if(a==0x2e||a==0x2f||a==0x7e||a==0x7d||a==0x8e||a==0x8f)//如果是就后退
- hui6();
- if(a==0x3f)//如果是0x3f就左转
- turnleft();
- if(a==0x4f)//如果是0x4f就右转
- turnright();
- if(a==0x00)//如果是0x00就停止
- down();
- if(a==0xa0)//如果是0xa0车灯打开
- GPIO_ResetBits(GPIOB,GPIO_Pin_12); //打开转向灯
- if(a==0xb0)//如果是0xb0车灯关闭
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- if(a==0xc0)//如果是0xc0蜂鸣器鸣响
- GPIO_ResetBits(GPIOB,GPIO_Pin_15); //打开蜂鸣器
- if(a==0xd0)//如果是0xd0蜂鸣器关
- GPIO_SetBits(GPIOB,GPIO_Pin_15); //关闭蜂鸣器
- else
- down();
- }
- }
- void (unsigned char DataToSend) //串口中断服务程序
- {
- // USART_SendData(USART1, (unsigned char) DataToSend);
- // a= ;//读取单片机串口接受的蓝牙模块发送的数据
- a = DataToSend;
- }
- /*
- 硬件链接:
- 左电机控制端口:PA3、PA4
- 右电机控制端口:PA1、PA2
- */
- #include "stm32f10x.h"//声明头文件
- #include "stm32f10x_exti.h"
- #include "stm32f10x_gpio.h"
- #include "stm32f10x_rcc.h"
- #include "stm32f10x_usart.h"
- #define uchar unsigned char//宏定义
- #define uint unsigned int//宏定义
- #define AA 35//左轮速度调节值
- #define BB 35//右轮速度调节值
- uchar a=0;//定义一个变量a,用来读取串口的数据
- /*有参数延时函数*/
- void delay(__IO uint32_t nCount)
- {
- for (; nCount != 0; nCount--);
- }
- unsigned int temp=0;
- unsigned char rebuf[5];
- unsigned int start=0;
- void GPIO_DengConfiguration()
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- /* 初始化LED的GPIO管脚,配置为推挽输出 */ //设置端口
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; //车灯GPIO_Pin12,13,14端口 15蜂鸣器端口
- //设置对端口的模式
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为 推挽(Push-Pull)输出
- //
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //最大输出速度为50MHz
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- }
- //前进子程序
- void go1()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(500000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //前进子程序
- void go2()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(400000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //前进子程序
- void go3()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(300000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //前进子程序
- void go4()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(200000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //前进子程序
- void go5()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- delay(100000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //前进子程序
- void go6()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //关闭右边轮子
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //小车后退的子程序
- void hui1()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(500000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //小车后退的子程序
- void hui2()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(400000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //小车后退的子程序
- void hui3()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(300000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //小车后退的子程序
- void hui4()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(200000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //小车后退的子程序
- void hui5()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
- delay(100000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
-
- //小车后退的子程序
- void hui6()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_3);
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_3); //关闭左边轮子
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子倒转
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //关闭右边轮子
-
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //小车左转弯子程序
- void turnleft()
- {
- GPIO_ResetBits(GPIOB,GPIO_Pin_13);//转向灯打开
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_ResetBits(GPIOA,GPIO_Pin_4); //左边轮子正转
-
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子停止
- delay(AA);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子停止
- delay(250000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //小车右转弯子程序
- void turnright()
- {
- GPIO_ResetBits(GPIOB,GPIO_Pin_14);//转向灯打开
-
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左边轮子停止
-
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_ResetBits(GPIOA,GPIO_Pin_2); //右边轮子正转
- delay(BB);
- GPIO_SetBits(GPIOA,GPIO_Pin_2); //右边轮子停止
- delay(250000);
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- //停止子程序
- void down()
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- GPIO_SetBits(GPIOA,GPIO_Pin_2);
- GPIO_SetBits(GPIOA,GPIO_Pin_3);
- GPIO_SetBits(GPIOA,GPIO_Pin_4); //左右轮全部停止
- GPIO_SetBits(GPIOB,GPIO_Pin_13);
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- }
- int main()//主程序
- {
- while(1)//死循环
- {
- if(a==0x14||a==0x15||a==0x54||a==0x55||a==0x64||a==0x65)//如果是就前进
- go1();
- if(a==0x16||a==0x17||a==0x56||a==0x57||a==0x66||a==0x67)//如果是就前进
- go2();
- if(a==0x18||a==0x19||a==0x58||a==0x59||a==0x68||a==0x69)//如果是就前进
- go3();
- if(a==0x1a||a==0x1b||a==0x5a||a==0x5b||a==0x6a||a==0x6b)//如果是就前进
- go4();
- if(a==0x1c||a==0x1d||a==0x5c||a==0x5d||a==0x6c||a==0x6d)//如果是就前进
- go5();
- if(a==0x1e||a==0x1f||a==0x5e||a==0x5f||a==0x6e||a==0x6f)//如果是就前进
- go6();
- if(a==0x24||a==0x25||a==0x74||a==0x75||a==0x84||a==0x85)//如果是就后退
- hui1();
- if(a==0x26||a==0x27||a==0x76||a==0x77||a==0x86||a==0x87)//如果是就后退
- hui2();
- if(a==0x28||a==0x29||a==0x78||a==0x79||a==0x88||a==0x89)//如果是就后退
- hui3();
- if(a==0x2a||a==0x2b||a==0x7a||a==0x7b||a==0x8a||a==0x8b)//如果是就后退
- hui4();
- if(a==0x2c||a==0x2d||a==0x7c||a==0x7d||a==0x8c||a==0x8d)//如果是就后退
- hui5();
- if(a==0x2e||a==0x2f||a==0x7e||a==0x7d||a==0x8e||a==0x8f)//如果是就后退
- hui6();
- if(a==0x3f)//如果是0x3f就左转
- turnleft();
- if(a==0x4f)//如果是0x4f就右转
- turnright();
- if(a==0x00)//如果是0x00就停止
- down();
- if(a==0xa0)//如果是0xa0车灯打开
- GPIO_ResetBits(GPIOB,GPIO_Pin_12); //打开转向灯
- if(a==0xb0)//如果是0xb0车灯关闭
- GPIO_SetBits(GPIOB,GPIO_Pin_14); //关闭转向灯
- if(a==0xc0)//如果是0xc0蜂鸣器鸣响
- GPIO_ResetBits(GPIOB,GPIO_Pin_15); //打开蜂鸣器
- if(a==0xd0)//如果是0xd0蜂鸣器关
- GPIO_SetBits(GPIOB,GPIO_Pin_15); //关闭蜂鸣器
- else
- down();
- }
- }
- void (unsigned char DataToSend) //串口中断服务程序
- {
- // USART_SendData(USART1, (unsigned char) DataToSend);
- // a= ;//读取单片机串口接受的蓝牙模块发送的数据
- a = DataToSend;
- }
复制代码
|