stm32hal库蓝牙遥控小车-蓝牙(串口中断)

所有模块介绍

小车的功能就是可以用蓝牙app遥控车移动。首先为了让小车跑起来,它需要两个电机让后轮转起来。其次为了让小车转弯,它需要一个舵机控制前轮转向。最后为了能控制小车移动,它需要一个蓝牙模块和手机完成通信。

三大模块确定好后,还需要考虑电源和主控芯片。主控芯片选经典的stm32f103c8t6,因为我只会这个。它需要3.3v供电。而电机大多是6v或12v供电。所以电源的选定需要降压,我选择了12v锂电池,通过多路输出降压模块,可以把12v直接输出,或者降到5v。

由于stm32f103c8t6最小系统板的引脚输出的电流很小,仅是毫安级别,如果靠gpio输出3.3v电压给电机,电机根本转不动,因为让电机转起来的电流至少需要零点几安。所以需要电机驱动模块,它可以为电机提供足够大的电流。

每一个模块设计到的知识点不同,这次先从蓝牙模块开始,原理是stm32的串口通信。此外,为了稳定电机转速,我用了pid闭环控制,为了看到电机转速和调节pid参数,也需要用到串口。

 

蓝牙模块讲解

这里大家直接去看

【【STM32入门教程-2023】应该是全B站最好的STM32教程了-哔哩哔哩】 https://b23.tv/8t987dq

看6-9集够了,学习串口通信三种方式中的前两种:轮询和中断。蓝牙这里采用中断的方式。在main函数里的while语句中调用函数HAL_UART_Receive_IT,开启串口接收中断,每当蓝牙模块接收到手机发送来的数据时就会触发中断,并调用中断回调函数HAL_UART_RxCpltCallback。我们重新定义这个函数,在里面可以用switch语句将手机发送来的指令和小车前后左右移动匹配起来。

另附一篇文章

【HAL库学习05---串口通信(三种方式轮询、中断、DMA) - CSDN App】http://t.csdnimg.cn/JK8Nt

 

蓝牙模块我买的是JDY-31,默认波特率为9600 Bits/s,可参考这两篇文章

【学习日志-04 - CSDN App】http://t.csdnimg.cn/K5Lor

【STM32系列——手把手教你蓝牙模块HC05、HC06的使用,重在“用起来”(HAL库) - CSDN App】http://t.csdnimg.cn/yc0Cr

 

我在cubemx上的配置

0aa6860c843847d78057c8d574fa7e2c.png

我在stm32cubeide的代码

cef1669c13f94595960f9b35019a7b62.png 

 可以参考框架,switch语句里的函数可以暂时不管,我后面会解释。另外需要安卓手机下载一个app,后续教程再告诉大家。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值