stm32智能车 手机蓝牙控制

2020-08-03 小car竣工
在这里插入图片描述
1.硬件
stm32f103c8t6
l298n
hc05
(网购的带万向轮、电机、小开关的小车模)

2.所需知识
pwm相关
串口通信
定时器中断
各种串口 定时器 io口初始化

3.硬件连接
在这里插入图片描述
stm32 l298n要共地毋庸置疑
意思就是把他们的GND接一起就好了

4.蓝牙模块
这里使用手机蓝牙控制

//main中的初始化
int main()
{
NVIC_PriorityGroupConfig(NVIC_priorityGroup_2);
usart2_init(9600);
......
}

用switch无法实现手机发送命令控制小车
所以用了if

用串口2是因为参考了某博客,为防止蓝牙通信出现问题
https://blog.csdn.net/qq_23685163/article/details/89061229
蓝牙模块出现过拿手机给车发一条指令后直接掉线
解决办法:
单独给c8t6供电 比如4.5v
单独给l298n供电 比如6v

蓝牙手机控制面板如下:
在这里插入图片描述

5.速度控制
pwm
运用两个时钟 使两电机转速不同
通过改变arr来改变占空比 以控制速度

//全局变量的引入使灵活改变占空比以改变车速成为可能,即左转、右转等功能
TIM_TimeBaseStructure.TIM_Period = temp1;
TIM_TimeBaseStructure.TIM_Period = temp2;
void Gostraight()
{
TIM_SetCompare1(TIM1,4000);//左前进
TIM_SetCompare2(TIM1,0);
TIM_SetCompare1(TIM4,4000);//右前进
TIM_SetCompare2(TIM4,0);
}

void Stop()
{
TIM_SetCompare1(TIM1,10);
TIM_SetCompare2(TIM1,10);
TIM_SetCompare1(TIM4,10);
TIM_SetCompare2(TIM4,10);
}

小车能前进、后退、原地左右打转、左转右转

//main.h
int main(void)
 { 
if(USART2_RX_STA&0x8000)
   {
    if(USART2_RX_BUF[0]=='1')
    {
    //小车前进
      temp1=15;
     temp2=15;
     TIM4_PWM_Init();
     TIM1_PWM_Init();
     Gostraight();//前进
   //delay_ms(50000);
    }
     USART2_RX_STA=0;
     }

if(USART2_RX_BUF[0]=='7')
    {
    //刹车
    temp1=50;
    temp2=50;
    TIM4_PWM_Init();
    TIM1_PWM_Init();
    Stop();
   //delay_ms(50000);
    }
     USART2_RX_STA=0;
     .....
     }

6.杂谈
csdn这个编辑器真够难用的

stlink是真的好用
脱离了flymcu的魔爪整个人都好了

正点原子stlink跟杜邦线的连接以此图为准(来自c8t6卖家手册)
在这里插入图片描述
杜邦线和c8t6连接参照下图
在这里插入图片描述

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值