找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4190|回复: 6
打印 上一主题 下一主题
收起左侧

STM32智能小车蓝牙控制程序

[复制链接]
跳转到指定楼层
楼主
ID:955119 发表于 2021-7-30 14:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近暑假得空做一下智能小车,这个蓝牙控制是其中一部分,后面我会再添加oled,wifi和语音等模块
帖子里面包括主函数和蓝牙的部分代码,整个工程详细代码我放在附件里面,你们有需要可以下载。里面代码亲试有效,有疑问欢迎来我帖子下面留言,我会一一回复的。
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "pwm.h"
  5. #include "Motor.h"
  6. #include "key.h"
  7. #include "BlueTooth.h"
  8. #include "Engine.h"
  9. #include "ultrasonic.h"


  10. int main(void)
  11. {        
  12.          Motor_Init();                //电机初始化
  13.          delay_init();         
  14.    time3_initer(65535,7);   //pwm初始化
  15.    BlueBooth_Init();         //蓝牙初始化
  16.    sg90_Init();                //舵机初始化
  17.          Wave_IO_Init();        //超声波初始化
  18.    while(1)
  19.          {
复制代码
蓝牙初始化代码

  1. #include "BlueTooth.h"
  2. #include "stm32f10x.h"
  3. #include "motor.h"
  4. #include "pwm.h"
  5. #include "Engine.h"
  6. #include "ultrasonic.h"

  7. #ifdef __GNUC__
  8.   /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
  9.      set to 'Yes') calls __io_putchar() */
  10.   #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
  11. #else
  12.   #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
  13. #endif /* __GNUC__ */


  14. u8 flag,i;

  15. void BlueBooth_Init(void)     //蓝牙初始化
  16. {

  17.      GPIO_InitTypeDef GPIO_InitStructure;
  18.     USART_InitTypeDef USART_InitStructure;
  19.     NVIC_InitTypeDef NVIC_InitStructure;

  20.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);
  21.         
  22. //   USART_DeInit(USART1);
  23. //  USART1_TX   PA.9                                                      //串口发送
  24.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;                 //PA.9
  25.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  26.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;     //推挽输出
  27.     GPIO_Init(GPIOA, &GPIO_InitStructure);                        //gpio初始化
  28.    

  29.     //USART1_RX          PA.10                                              //串口接收
  30.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;     
  31.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  //浮空输入
  32.     GPIO_Init(GPIOA, &GPIO_InitStructure);                     //gpio初始化

  33.      USART_InitStructure.USART_BaudRate = 9600;           //串口波特率
  34.                
  35.      USART_InitStructure.USART_WordLength = USART_WordLength_8b;        //字长为8位数据格式
  36.      USART_InitStructure.USART_StopBits = USART_StopBits_1;                    //一位停止位
  37.      USART_InitStructure.USART_Parity = USART_Parity_No;                        //无奇偶校验和
  38.      USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;  //无硬件数据流控制
  39.      USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;      //收发模式

  40.     USART_Init(USART1, &USART_InitStructure);                      //串口1初始化
  41.      USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);             //开始串口接收中断

  42.     //Usart1 NVIC
  43.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);            //分组0
  44.     NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
  45.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//3位抢占优先级
  46.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;          //3位子优先级
  47.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;          //IRQ中断使能
  48.     NVIC_Init(&NVIC_InitStructure);        //NVIC初始化
  49.                
  50.     USART_Cmd(USART1, ENABLE);                    //串口初始化
复制代码

下面这个是我上一篇帖子,里面是超声波加舵机的测距代码,里面有详细工程,你们也可以看一下                    
http://www.51hei.com/bbs/dpj-210799-1.html

e06218dd24d0c7e52e05d0c3f695028.jpg (106.84 KB, 下载次数: 190)

前进字符‘a’

前进字符‘a’

4014cd85d4df40217566eacd00eb55c.jpg (104.35 KB, 下载次数: 183)

后退字符‘b’

后退字符‘b’

901d4e0a20328c915d136f4ffa83610.jpg (164.92 KB, 下载次数: 168)

蓝牙模块安装

蓝牙模块安装

13eaac89a40ef14c0a654a294dcfc98.jpg (111.88 KB, 下载次数: 198)

蓝牙串口控制页面

蓝牙串口控制页面

4a8b2e1e142e1038aaa1a12bb9a63e3.jpg (97.22 KB, 下载次数: 185)

可以在手机应用商场下载

可以在手机应用商场下载

51hei.png (4.92 KB, 下载次数: 192)

51hei.png

STM32代码.7z

191.36 KB, 下载次数: 61, 下载积分: 黑币 -5

里面有蓝牙控制小车的详细代码,你们可以看一下

评分

参与人数 1黑币 +60 收起 理由
admin + 60 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:328014 发表于 2021-7-30 22:56 | 只看该作者
好东东,这个前进后退的蓝牙app要从哪里弄呢?
回复

使用道具 举报

板凳
ID:955119 发表于 2021-7-31 09:54 | 只看该作者
51hei团团 发表于 2021-7-30 22:56
好东东,这个前进后退的蓝牙app要从哪里弄呢?

在你的手机应用商店就有
回复

使用道具 举报

地板
ID:892737 发表于 2021-8-1 00:37 | 只看该作者
楼主你好,我想请问一下,遥控器的程序该怎么写呢,求讲的详细一点,谢谢!
回复

使用道具 举报

5#
ID:955119 发表于 2021-8-1 15:57 | 只看该作者
1196383236 发表于 2021-8-1 00:37
楼主你好,我想请问一下,遥控器的程序该怎么写呢,求讲的详细一点,谢谢!

void BlueBooth(void)
{
       
     switch(i)
   {
                                        case 'a':  forward();      TIM_SetCompare1(TIM3,300);     TIM_SetCompare2(TIM3,300);     break  ;
                                        case 'b':  back();         TIM_SetCompare1(TIM3,-300);    TIM_SetCompare2(TIM3,-300);    break  ;
                                        case 'c':  Turn_Right();   TIM_SetCompare1(TIM3,500);        break  ;
                                        case 'd':  Turn_Left();    TIM_SetCompare2(TIM3,500);      break  ;
                            case 'e':  Wave_BZ();         break  ;
                      case 'f':  stop();           TIM_SetCompare1(TIM3,0);       TIM_SetCompare2(TIM3,0);       break  ;  
          //default:   
                 
                   
          }       

}
回复

使用道具 举报

6#
ID:328014 发表于 2021-8-24 17:06 | 只看该作者
遥控还是很方便的,楼主都已经封装好函数了,调用就行了 forward()这几个
回复

使用道具 举报

7#
ID:1041356 发表于 2022-8-4 10:23 | 只看该作者
你好,我用的也是这个app,但是我在手机上长按前进的时候,小车只会前进一步,不会持续前进,请问要怎么解决?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表