(优作)基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)竞赛作品

基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)竞赛作品

        基于意法半导体与ARM公司生产的STM32F4 DISCOVERY开发板的集电机驱动模块、电源管理模块、stm32f4主控模块、蓝牙串口通信模块、android控制端模块。电机驱动模块使用了两个L298N芯片来驱动4路电机,使能端连接4路来自主控板的PWM波信号,8个输入端接主控板的8个输出端口;电源管理模块使用了LM2940-5.0芯片进行12V到5V的转换,12V用于电机模块的供电,5V用于蓝牙模块、传感器等的供电;主控模块采用了MDK编辑程序,然后下载到主控板,实现硬件与软件的交互;蓝牙串口通信模块则是采用了FBT06_LPDB针插蓝牙模块,与主控板进行串口通信,同时与android手机进行通信;android控制端模块是一个集开启蓝牙、搜索蓝牙、控制小车等功能。用户可以通过android控制端进行控制小车的运动,实现一些用户需要的功能和服务。

设置电机转向程序
改程序将电机驱动模块的8个输入端口接到了主控板的8个GPIO口,通过推挽输出,从而控制电机的转向,代码如下:


void Direction(int direction)
{
SysTick_Config(SystemCoreClock / 1000); //时钟中断设为1msRCC->AHB1ENR |= 0x00000005; //使能GPIOA和GPIOD时钟RCC->APB2ENR |= (1<<14);  //使能syscfg时钟
if(direction==0)
{GPIOA->MODER &= 0xffff0000; //设置PA0,1,2,3为输出GPIOA->MODER |= 0x00005555; GPIOA->OTYPER &= 0xFFFFff00; //设置PA0,1,2,3为推挽输出GPIOA->OSPEEDR &= 0xffff0000; //设置PA0,1,2,3的输出速度为100MGPIOA->OSPEEDR |= 0x0000ffff;SYSCFG->CMPCR = 0x00000001; //使用IO补偿单元GPIOA->PUPDR &= 0xffffff00;  //设置PA0,1,2,3无上拉,无下拉GPIOA->BSRRH = 0x00ff;  //复位GPIOA_BSRRH寄存器GPIOA->BSRRL = 0x0055;		}else{
GPIOA->MODER &= 0xffff0000; //设置PA0,1,2,3为输出GPIOA->MODER |= 0x0000005555; GPIOA->OTYPER &= 0xFFFFff00; //设置PA0,1,2,3为推挽输出GPIOA->OSPEEDR &= 0xffff0000; //设置PA0,1,2,3的输出速度为100MGPIOA->OSPEEDR |= 0x0000ffff;SYSCFG->CMPCR = 0x00000001; //使用IO补偿单元GPIOA->PUPDR &= 0xffffff00;  //设置PA0,1,2,3无上拉,无下拉GPIOA->BSRRH = 0x00ff;  //复位GPIOA_BSRRH寄存器GPIOA->BSRRL = 0x00AA;
}

成果展示:

资料下载:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1411064.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM SpringBoot vue教务排课系统

基于SSM SpringBoot vue教务排课系统 系统功能 登录 个人中心 学生信息管理 教师信息管理 课室信息管理 班级信息管理 系别信息管理 专业信息管理 课程信息管理 选课信息管理 课表信息管理 开发环境和技术 开发语言&#xff1a;Java 使用框架: SSM(Spring SpringMVC Myba…

【Qt基础教程】QGridLayout与QFormLayout

文章目录 前言一、QGridLayout二、QFormLayout总结 前言 在Qt应用程序开发中&#xff0c;布局管理器是一种关键的技术&#xff0c;用于管理和安排窗口小部件的位置和大小。QGridLayout和QFormLayout是两个常用的布局管理器&#xff0c;它们分别适用于网格状和表单状的界面布局…

创新指南 | 围绕“获客、转化、增长”三要素,构建 PLG线上运营 体系

构建一个高效的 PLG线上运营 体系&#xff0c;对于任何希望利用产品本身优势推动业务增长的公司来说都是至关重要的。PLG模式通过产品本身的力量来驱动用户增长、促进转化并提升用户体验&#xff0c;从而实现自然而持续的增长。 一、PLG线上运营的整体框架和思路 PLG线上运营 …

百度网盘里的文件怎么打印?

在日常生活和工作中&#xff0c;我们经常需要打印各种文件&#xff0c;包括学习资料、工作报告、合同文件等。有时候&#xff0c;这些文件保存在百度网盘等云存储服务中&#xff0c;我们该如何方便地打印出来呢&#xff1f;今天&#xff0c;就为大家介绍一种便捷的方法——通过…

InfiniFlow 創始人兼CEO張穎峰確認出席“邊緣智能2024 - AI開發者峰會”

隨著AI技術的迅猛發展&#xff0c;全球正逐步進入邊緣計算智能化與分布式AI深度融合的新時代&#xff0c;共同書寫著分布式智能創新應用的壯麗篇章。邊緣智能&#xff0c;作為融合邊緣計算和智能技術的新興領域&#xff0c;正逐漸成為推動AI發展的關鍵力量。借助分布式和去中心…

[数据结构]———归并排序

具体代码&#xff1a;在gitee仓库&#xff1a;登录 - Gitee.com 目录 ​编辑 1.基本思想&#xff1a; 2. 代码解析 1.分析 2.逻辑图 3.运行结果 1.基本思想&#xff1a; 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分…

7个策略,让你的可视化大屏打动人心!

要打动人心的可视化大屏&#xff0c;可以采取以下策略&#xff1a; 引人入目的设计&#xff1a; 选择鲜明而吸引人的颜色和视觉效果&#xff0c;使用引人注目的动画和过渡效果&#xff0c;以及吸引眼球的图形和图案设计。通过精心设计的布局和排版&#xff0c;确保信息清晰可…

leetcode_43.字符串相乘

43. 字符串相乘 题目描述&#xff1a;给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 &q…

Static内存分析

title: Static内存分析 tags: Java基础知识 abbrlink: 49066 date: 2021-04-25 19:06:41 Static内存分析 一.基础须知 1.静态变量 1&#xff09;定义&#xff1a; 在一个Java类中&#xff0c;可以使用static关键字来修饰全员变量&#xff0c;该变量被称作静态变量 2&…

【linux】重定向

重定向 什么是重定向如何实现一个简单的重定向关于重定向的系统调用接口 注意&#xff1a;在看这篇博客之前&#xff0c;最好是要对文件在系统中是如何被打开的以及操作系统是如何管理文件有一个初步了解&#xff0c;如果不了解的话&#xff0c;可以看看这篇博客《初步认识文件…

苹果CEO对未来一代人工智能投资持乐观态度

尽管在动荡的第二季度&#xff0c;苹果的收入和iPhone销量有所下降&#xff0c;但其新兴的人工智能技术可能会带来急需的提振。 在5月2日的电话财报会议上&#xff0c;苹果公布季度收入为908亿美元&#xff0c;比去年下降4%。iPhone的收入也下降了10%&#xff0c;至460亿美元。…

无言:破局之道:顿悟+坚持——早读(逆天打工人爬取热门微信文章解读)

致无言 引言Python 代码第一篇 洞见 7年跟踪调查北京28个精英家庭&#xff1a;为什么顶尖大学孩子大多来自有钱家庭&#xff1f;第二篇 人民日报 来了&#xff01;新闻早班车要闻社会政策 结尾 控制你的情绪 否则它将控制你 在紧张的游戏中 控制情绪 避免冲动行为 是每个玩家的…

Linux中动态库的用法及优缺点?怎样制作动态库和静态库?

一、什么是gcc gcc的全称是GNU Compiler Collection&#xff0c;它是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器&#xff08;GNU C Compiler&#xff09;&#xff0c;现在除了c语言&#xff0c;还支持C、java、Pascal等语言。gcc支持多种硬件平台. 在 Linux…

地震学角度说明横波纵波哪个才是垂直于传播方向振动

上面两幅图片&#xff0c;第一个是横波&#xff0c;第二个是纵波。死记硬背过一段时间总会忘记哪个是哪个。现通过地震学对横波纵波的定义来说明&#xff0c;如何从图形一眼判断横波和纵波。 横波&#xff1a; 因为地震的发生是由于地球内部的板块运动造成的&#xff0c;所以…

数据分析必备:一步步教你如何用numpy改变数据处理(2)

1、NumPy 简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库&#xff0c;它非常重视数组。它允许你在Python中进行向量和矩阵计算&#xff0c;并且由于许多底层函数实际上是用C编写的&#xff0c;因此你可以体验在原生Python中永远无法体验到的速度。 NumPy绝对是…

【软件开发规范篇】JAVA后端开发异常处理规范

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

01 Activiti 7:步骤

01 Activiti 7&#xff1a;步骤 1. 整合Activiti2. 业务流程建模3. 部署业务流程4. 启动流程实例5. 查询待办任务6. 处理待办任务7. 结束流程 1. 整合Activiti 业务系统使用 Activiti 来对系统的业务流程进行自动化管理。为了方便业务系统访问&#xff08;操作&#xff09;Act…

C语言 循环语句 (3) for 循环语句

接下来 我们来看第三个 for语句 基本语句是 for关键字 然后小括号 括号中三个表达式 然后它对表达式2进行判断 如果表达式2条件成立 则走进循环体 执行完循环体 会回来执行表达式3 然后再返回来 继续对表达式2进行判断 如果表达式2 还是成立 这继续循环往复 直到表达式2的条件…

《Fundamentals of Power Electronics》——隔离型CUK转换器、

以下是隔离型CUK转换器的相关知识点&#xff1a; Cuk电路的隔离型版本获得方式不同。基础非隔离型Cuk电路如下图所示。 将上图中电容C1分成两个串联的电容C1a和C1b&#xff0c;得到结果如下图所示。 在两个电容之间插入一个变压器&#xff0c;得到如下图所示电路。 变压器极性…

可视化大屏应用场景:智慧安防,保驾护航

hello&#xff0c;我是大千UI工场&#xff0c;本篇分享智慧安防的大屏设计&#xff0c;关注我们&#xff0c;学习N多UI干货&#xff0c;有设计需求&#xff0c;我们也可以接单。 实时监控与预警 可视化大屏可以将安防系统中的监控画面、报警信息、传感器数据等实时展示在大屏上…