蓝牙技术
登录
直播中
郭鑫
6年用户
19经验值
私信
关注
[讨论]
【参赛】stm32蓝牙小车详解(源程序+配件详解)
STM32
蓝牙模块
蓝牙小车
`
STM32
蓝牙小车
2018
年
8月31日
一、
摘要
1.
“基于stm32f4的蓝牙控制小车”是一个基于意法
半导体
与
ARM
公司生产的STM32F4 DISCOVERY
开发板
的集电机驱动模块、
电源
管理模块、stm32f4主控模块、蓝牙串口
通信
模块、android控制端模块
(
通俗讲:用
手机
控制)。
2.
蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无限数据与语音
通信
的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。
手机
之间通过蓝牙实现数据共享成为常理,将手机变为遥控器为人们的生活带来无限方便。遥控小车在工业、国防、科研等领域应用越来越广泛,例如说:消防遥控小车、探测小车等。
二、
引言
本文详细阐述了使用蓝牙通信的手机遥控小车前行、倒退、左转、右转和停止等功能的软硬件设计过程。
而我自己也是刚刚做完我们学校的校内赛,以下都是我自己的经验之谈。
在做蓝牙小车前期,感觉网上的资料大多不太详细。现在我总结了一下,不足之处请大家谅解。
三、
系统方案
该系统分为电机驱动模块、
电源
管理模块、主控板、蓝牙通信模块、
Android
控制端(手机下载串口通讯即可)等
5
个模块。(我用的是学长们给的stm32模块,大家也可以用网上的模块,都是大同小异的)
四、
配件分类
开发板
:
stm32c8t6;电机驱动:l298n;蓝牙模块:
HC-05主从机一体蓝牙模块
(
两个)
;
电机(小黄电机,铁电机等);电池、降压模块(
LM2596S DC-DC 降压
电源模块
)等。附上我们小车的粗糙图:
五、
前期工作
1. 蓝牙的配置。
2.
了解
stn32c8t6
的各个
IO
口。
3.
了解
stn32
的
ti
M
(
1~4
),知道各个
IO
口对应的通道。
4.
了解
L298
驱动模块。
5. 以上我就不一一介绍,下面有文件大家看一下。
六、
系统软件设计
1.
首先进行bsp.c的配置
2. 我使用的是A0~3(TIM2)和B6~9(TIM4)的引脚。
3. TIM2的配置(TIM4查表差不多,只要把TIM2的改为TIM4即可,原理请看stm32参考手册。)
void TIM2_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = (100- 1); //arr 设置在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler = (7200-1); //分频 psc
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割,一般写0
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //设置为向上计数模式
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
/* PWM1 Mode configuration: Channel1*/
TIM_OCInitStructure.TIM_Pulse = 0; // 初始值
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //pwm模式2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //使能通道
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //高电平
TIM_OC1Init(TIM2, &TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable); //使能或者失能TIMx在CCR3上的预装载寄存器
TIM_OC2Init(TIM2, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);
TIM_OC3Init(TIM2, &TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable); //使能或者失能TIMx在CCR3上的预装载寄存器
TIM_OC4Init(TIM2, &TIM_OCInitStructure);
TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM2, ENABLE); /* 中断使能 */
/* TIM3 enable counter */
TIM_Cmd(TIM2, ENABLE); /* 使能 */
}
4.初始化串口1(蓝牙数据传输用A9、A10)
void USART1_Configuration(void)
{
USART_InitTypeDef USART_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
/* Configure USART1 Rx (PA.10) as input floating */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入模式
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure USART1 Tx (PA.09) as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_Init(GPIOA, &GPIO_InitStructure);
USART_InitStructure.USART_BaudRate = 38400; //速率115200bps
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //数据位8位
USART_InitStructure.USART_StopBits = USART_StopBits_1; //停止位1位
USART_InitStructure.USART_Parity = USART_Parity_No; //无校验位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //无硬件流控
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式
/* Configure USART1 */
USART_Init(USART1, &USART_InitStructure); //配置串口参数函数
/* Enable USART1 Receive and Transmit interrupts */
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //使能接收中断
/* Enable the USART1 */
USART_Cmd(USART1, ENABLE); //使能串口
}
5.蓝牙指令程序(在stm32f10x_it.c)
extern int x;//全局声明
6.
主函数(里面的数据是我们小车,大家可以自己更改)
int x=0;
int main(void)
{
BSP_Init();
while(1)
{
if(x == 1)
{
TIM2->CCR1 = 0;
TIM2->CCR2 = 99;
TIM2->CCR3= 0;
TIM2->CCR4 = 99;
TIM4->CCR1 = 0;
TIM4->CCR2 = 99;
TIM4->CCR3= 0;
TIM4->CCR4 = 99;
}
if(x == 2)
{
TIM2->CCR1 = 0;
TIM2->CCR2 = 0;
TIM2->CCR3 = 0;
TIM2->CCR4 = 0;
TIM4->CCR1 = 0;
TIM4->CCR2 = 0;
TIM4->CCR3 = 0;
TIM4->CCR4 = 0;
}
if(x == 3)
{
TIM2->CCR1 = 99;
TIM2->CCR2 = 0;
TIM2->CCR3 = 99;
TIM2->CCR4 = 0;
TIM4->CCR1 = 99;
TIM4->CCR2 = 0;
TIM4->CCR3 = 99;
TIM4->CCR4 = 0;
}
if(x == 4)
{
TIM2->CCR1 = 0;
TIM2->CCR2 = 99;
TIM2->CCR3 = 99;
TIM2->CCR4 = 0;
TIM4->CCR1 =0;
TIM4->CCR2 =99;
TIM4->CCR3 = 99;
TIM4->CCR4 = 0;
}
if(x == 5)
{
TIM2->CCR1 = 99;
TIM2->CCR2 = 0;
TIM2->CCR3 = 0;
TIM2->CCR4 = 99;
TIM4->CCR1 = 99;
TIM4->CCR2 = 0;
TIM4->CCR3 = 0;
TIM4->CCR4 = 99;
}
while_1(); // 主要的执行程序
}
}
/*********************************************************
printf重定义
**********************************************************/
int fputc(int ch,FILE *f)
{
USART_SendData(USART1,(u8)ch);
while (USART_GetFlagStatus(USART1,USART_FLAG_TC) == RESET);
return ch;
}
7.最后是提醒一下:
主要执行函数,执行空语句就好了。(在device.c里)
游客,如果您要查看本帖隐藏内容请
回复
HC-05 主从机一体蓝牙模块 无线蓝牙串口透传模块 无线模块 1.rar
(69.88 KB)
(下载次数: 260, 2018-8-31 11:57 上传)
L298N_电机驱动模块_程序书(1).doc
(722.5 KB)
(下载次数: 121, 2018-8-31 11:57 上传)
STM32F103C8最小系统资料(1).zip
(2.76 MB)
(下载次数: 114, 2018-8-31 11:58 上传)
源代码.zip
(6.32 MB)
(下载次数: 568, 2018-8-31 14:44 上传)
https://bbs.elecfans.com/forum.php?mod=attachment&aid=Njc4ODUyfGMxNmUwZjljYWE2NTY2ZjZiYzVkNzJlZWFkMzcwNWI2fDE3MzUzNzYxNzQ%3D&request=yes&_f=.rarattach://678852.rar
以上就是我做小车比赛的总结,希望对大家有所帮助。我通过这一次小车比赛,也是初步的认识了stm32,希望大家也能通过蓝牙小车程序的配置,了解stm32.
`
回帖
(84)
郭鑫
2018-8-31 15:10:44
RE: 【参赛】stm32蓝牙小车详解(源程序+配件详解)
图片没能上传,实在很抱歉。
图片没能上传,实在很抱歉。
1
举报
周凯:
谢谢分享,学习学习。
郭鑫
2018-9-1 08:16:15
这些是剩下的图片,真的很抱歉。
这些是剩下的图片,真的很抱歉。
举报
郭鑫
2018-9-1 08:21:11
蓝牙程序也补上
蓝牙程序也补上
举报
北山独狼
2022-3-31 08:09:49
蓝牙技术,学习学习
蓝牙技术,学习学习
举报
北山独狼
2022-3-7 10:51:52
多谢楼主的分享,学习学习
多谢楼主的分享,学习学习
举报
lboy
2022-3-7 09:42:13
谢谢分享
谢谢分享
举报
褪色毛衣
2022-1-23 01:41:58
89897974更何况里面,房管局一块
89897974更何况里面,房管局一块
举报
尹会胜
2021-9-25 18:57:33
多谢楼主分享,好人一生平安
多谢楼主分享,好人一生平安
举报
AaronLin
2021-4-21 13:40:56
Something special! just study!
Something special! just study!
举报
AaronLin
2021-4-21 11:55:51
study it ! would you reply all package, thank you!
study it ! would you reply all package, thank you!
举报
xbw233
2021-4-1 12:46:50
多谢楼主分享,好人一生平安
多谢楼主分享,好人一生平安
多谢楼主分享,好人一生平安
多谢楼主分享,好人一生平安
举报
matmat
2021-3-31 17:36:58
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
举报
gzy1223
2021-3-17 22:03:35
太棒了,这个报告,有很高的参考价值
太棒了,这个报告,有很高的参考价值
举报
不慌同学
2021-1-12 20:04:46
可以的反反复复烦烦烦烦烦烦烦烦烦烦烦烦烦烦烦
可以的反反复复烦烦烦烦烦烦烦烦烦烦烦烦烦烦烦
举报
周财胜
2020-9-27 16:43:24
多谢楼主分享,好人一生平安
多谢楼主分享,好人一生平安
多谢楼主分享,好人一生平安
多谢楼主分享,好人一生平安
举报
Samuel2020
2020-9-17 16:15:02
厉害,学习了,真是个好东西
厉害,学习了,真是个好东西
举报
银鱼小宝宝
2020-8-25 14:53:35
6666666666666666666666666666666666
6666666666666666666666666666666666
举报
wzjhuohua
2020-7-28 15:38:05
小伙子很厉害啊
小伙子很厉害啊
举报
h1654155340.3769
2020-6-19 19:12:14
666666666666666666666666666666
666666666666666666666666666666
举报
余一
2020-6-13 12:49:49
需要 学习 谢谢楼主的分享
需要 学习 谢谢楼主的分享
举报
剑
2020-5-1 15:58:26
谢谢楼主的分享
谢谢楼主的分享
举报
张泼皮
2020-1-30 11:39:09
学习了 谢谢分享
学习了 谢谢分享
举报
zy66666
2019-11-29 13:23:34
感谢老哥
.......................................
感谢老哥
.......................................
举报
更多回帖
rotate(-90deg);
回复
相关帖子
STM32
蓝牙模块
蓝牙小车
OFDM仿真
源程序
详解
0
基于
STM32
蓝牙
小车程序
6
小车
源程序
工程
1
蓝牙
小车
制作过程图文叙述+
源程序
96
STM32
智能壁障
小车
源程序
和原理图
194
基于
STM32
的两轮平衡
小车
源程序
68
智能
小车
系统设计
源程序
13
智能
小车
循迹
源程序
22
循迹
小车
的arduino
源程序
16
PWM
程序
控制
小车
源程序
11
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分