找回密码
 立即注册

QQ登录

只需一步,快速开始

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

分享一个基于stm32f103c8t6的蓝牙控制双电机履带小车程序代码(带oled参数显示)

[复制链接]
跳转到指定楼层
楼主
ID:527441 发表于 2020-6-2 10:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个代码是我一个项目的初始代码,可以在这个基础上扩展很多其他的东西,比如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, 下载次数: 86)

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:1078120 发表于 2023-5-17 20:57 | 只看该作者
手机app和蓝牙咋弄,求教
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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