第一 二章 小车硬件介绍-(全网最详细)基于STM32智能小车-蓝牙遥控、避障、循迹、跟随、PID速度控制、视觉循迹、openmv与STM32通信、openmv图像处理、smt32f103c8t6

第一篇-STM32智能小车硬件介绍

后续章节也放这里 持续更新中,视频发布在小B站 里面。这边也会更新。
B站视频合集:

STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随

小B站链接:https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click&vd_source=16940ba3adbc66f0fb14e0c1d87db878
后面章节持续跟新的
第三 四章-OLED使用 和串口openmv图像处理小车硬件介绍-(全网最详细)基于STM32智能小车-蓝牙遥控、避障、循迹、跟随、PID速度控制、视觉循迹、openmv与STM32通信、

第五章-PWM控制电机 开源stm32循迹小车详细制作过程(附加完全版代码)-openmv视觉循迹、红外循迹、避障跟随、超声波跟随、蓝牙遥控 m32f103c8t6、stm32cubemx
后面还有视觉、RTOS等功能先不列举了,大家直接到专栏看把。

1.1-元件选型

这里给出元件列表和数量
后面每个元件使用前会给出参数等。
在这里插入图片描述

1.2-原理图与PCB

底板原理图

各个模块的供电电压?

模块接口引脚顺序?

如何确定使用单片机那个引脚?
在这里插入图片描述
STM32F103C8T6核心板原理图(可能使用不同核心板略有差异)
在这里插入图片描述
PCB顶层截图

不同类型线粗细

布局总线方式
在这里插入图片描述

1.3-焊接

PCB正面
在这里插入图片描述
PCB背面
在这里插入图片描述
然后插上元件

在这里插入图片描述

1.4-结构与组装

这是组装好的车体照片
在这里插入图片描述
然后小车安装PCB

注意电机和红外对管不要插错
在这里插入图片描述

1.5-测试

使用万用表蜂鸣挡 测量 电源引脚和GND是否短路

第二章-GPIO与中断

2.0-新建工程

在这里插入图片描述
建议选择和我一样的版本

在这里插入图片描述
新建一个工程
在这里插入图片描述
选择芯片
在这里插入图片描述
选择时钟源
在这里插入图片描述
选择调试
在这里插入图片描述
勾选生成独立的文件
在这里插入图片描述
设置保存地址
在这里插入图片描述
勾选这个不添加没有使用库文件可以减小工程文件大小(也可以不勾选,保持默认设置)
在这里插入图片描述
MDK打开工程,调低优化等级
在这里插入图片描述
以上是每次新建工程要做的

以后我们不在新建工程,使用之间的工程即可

2.1-点灯

这里我们点亮PC13连接的小灯
在这里插入图片描述
配置PC13
在这里插入图片描述
生成代码
在这里插入图片描述
生成代码后,使用MDK打开工程
在这里插入图片描述
在这里插入图片描述
在BEGIN和END添加代码

在这里插入图片描述

	HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);HAL_Delay(500);

根据自己的芯片选择
在这里插入图片描述
烧录程序(必看 使用其中一个方法)
在这里插入图片描述

方法一:使用DAP LINK

接线图
在这里插入图片描述
DAP 在Win 10 免驱动的
然后根据自己使用的工具在MDK中设置下载工具
在这里插入图片描述
设置下载算法
在这里插入图片描述
然后下载程序,复位小灯闪烁
在这里插入图片描述
烧录后现象

小灯每0.5秒闪烁一次

方法二:使用stlink

接线图

STlink不要接3.3V
在这里插入图片描述
使用Stlink 前先安装驱动
在这里插入图片描述
双击运行
在这里插入图片描述
选择ST-Link
在这里插入图片描述
选择算法
在这里插入图片描述
然后点击编译,烧录
在这里插入图片描述
烧录后现象

小灯每0.5秒闪烁一次

补充可能遇到的失败情况

使用DAP-LINK

如果我们芯片IDCODE是0x2 开头的那么我们需要替换一下Keil 的器件包

(如果你是0x1 开头的,如果能下载可以不替换)
在这里插入图片描述
STM32小车相关资料V3.3.0\04使用的软件\中科芯CKS芯片支持包
在这里插入图片描述
在这里插入图片描述
下面这个算法就会自动切换
在这里插入图片描述

使用stlink

2.2-按键

先看原理图

PB4–KEY1 单片机设置下拉输入-、上降沿触发

PA12–KEY2 单片机设置上拉输入、下降沿触发
在这里插入图片描述
开始配置
在这里插入图片描述
使能外部中断
在这里插入图片描述
然后生成代码

重新实现中断回调函数、编写按键检测程序
在这里插入图片描述
在gpio.c 中我们编写该函数
在这里插入图片描述

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin == KEY1_Pin){//判断一下那个引脚触发中断//这里编写触发中断后要执行的程序HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);//切换LED GPIO状态}if(GPIO_Pin == KEY2_Pin){//判断一下那个引脚触发中断//这里编写触发中断后要执行的程序HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);//切换LED GPIO状态}
}

把main中控制闪烁注释掉
在这里插入图片描述
烧录后的现象

按下KEY1 或者KEY2可以切换LED灯开关状态

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

启航IT世界:高考后假期的科技探索之旅

随着高考的落幕,新世界的大门已经为你们敞开。这个假期,不仅是放松身心的时光,更是为即将到来的IT学习之旅打下坚实基础的黄金时期。以下是一份专为你们准备的IT专业入门预习指南,希望能助你们一臂之力。 一:筑基篇&a…

STM32F407ZGT6驱动TFT屏ILI9341(硬件SPI)

硬件连接 我购买的是ili9341,2.8inch,带触摸 开发板是野火stm32f407霸天虎 LCD模块STM32单片机VCCDC5V/3.3VGNDGNDSDI(MOSI)PB5SDO(MISO)PB4LEDPB13SCKPB3DC/RSPB14RSTPB12CSPB15触摸连接T_IRQPB1T_DOPB2T_DINPF11T_CSPC5T_CLKPB0 初始化 本次使用的是硬件SPI1&…

Bootstrap 缩略图

Bootstrap 缩略图 引言 Bootstrap 是一个流行的前端框架,它提供了一套丰富的组件和工具,帮助开发者快速构建响应式和移动优先的网页。缩略图(Thumbnails)是 Bootstrap 中的一种组件,用于展示图片或其他媒体内容,通常与标题和文本描述一起使用,形成一个整洁的布局。本文…

新版MinIO安装,附带问题处理和SSL设置(巨详细)

前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 下面开始: 前往官网下载需要的二进制文件 wget https://dl.min.io/server/minio/release/linux-am…

element ui中的scss语法理解

摘录至 导读 首先来看一个bem命名示例 .el-message-box{} .el-message-box__header{} .el-message-box__header--active{}如果使用已经封装好的bem方法的话,那么可以写成 include b(message-box) {include e(header) {include m(active);} }接下来我们来看一下b…

【FPGA】Verilog:全减器与半减器 | Full Subtractor | Half Subtractor

0x00 全减器(Full Subtractor) 减法器是用于减法运算的逻辑电路,与不包含借位的半减法器不同。 全减法器因为包含借位的产生与否,所以具备完整的减法功能。 输出由差 和借位 组成:

JUC基础学习

1.Java JUC简介 2.volatile关键字-内存可见性 3.原子变量-CAS算法 4.ConcurrentHashMap锁分段机制

什么是滴答定时器?

滴答定时器(Tick Timer)是一种关键的硬件组件,用于生成固定时间间隔的信号。这些信号通常称为“滴答”(tick),是操作系统和应用程序的时间管理基础。滴答定时器的应用范围广泛,从简单的定时任务…

Java中的数据加密与安全传输

Java中的数据加密与安全传输 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨一下在Java中如何实现数据加密与安全传输。 随着互联网的普及和网络…

C++学习/复习18----迭代器/反向迭代器及在list/vector中的应用、list与vector模拟实现复习

迭代器是一个对象,可以循环访问 C 标准库容器中的元素,并提供对各个元素的访问。 C 标准库容器全都提供迭代器,以便算法可以采用标准方式访问其元素,而不必考虑用于存储元素的容器类型。 一、反向迭代器类 基于普通迭代器构建反…

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用 使用gitlab的CI/CD实现logseq笔记自动发布为单页应用如何实现将logseq的笔记发布成网站使用 logseq-publish-docker 实现手动发布使用gitlab的CI/CD实现自动发布过程中的问题及解决参考资料 使用gitlab的CI/CD实现logseq笔记…

[AIGC] 常用的OLAP数据库:为数据分析提供强大的支持

导语:在大数据时代,数据分析成为了企业决策的重要依据。为了高效地处理和分析海量的数据,OLAP数据库应运而生。本文将介绍几种常用的OLAP数据库,为数据分析提供强大的支持。 一、Snowflake Snowflake是一种云原生的OLAP数据库&a…

win10和mac之间如何共享文件夹

我用的mac版本是 macOS Ventura ,其他版本的操作可能略有不同 在 macOS Ventura 上设置共享文件夹 打开“系统设置”:点击屏幕左上角的苹果菜单 () > 系统设置。选择“通用”:在左侧边栏中找到并点击“通用”。选择“共享”&#xff1…

第二届重庆国际渔业博览会

The 2th Chongqing International Fisheries & Seafood Expo 时间:2024年10月25-27日 地点:重庆国际博览中心 同期举办:第十六届中国(重庆)火锅美食文化节暨第九届中国(重庆)国际火锅产业博览会 展会规模: 展出…

利用Java的`java.util.concurrent`包优化多线程性能

利用Java的java.util.concurrent包优化多线程性能 一、引言 在Java的多线程编程中,性能优化是一个永恒的话题。随着多核CPU的普及和计算任务的日益复杂,多线程编程已经成为提高应用程序性能的重要手段。然而,多线程编程也带来了一系列的问题…

(论文版)深度学习 | 基于 VGG16-UNet 语义分割模型的猫狗图像提取研究

Hi,大家好,我是半亩花海。本实验本项目基于 VGG16-UNet 架构,利用 Labelme 标注数据和迁移学习,构建高效准确的猫狗图像分割模型。通过编码器-解码器结构(特征提取-上采样)提升分割精度,适应不同…

VBA数据库解决方案第十二讲:如何判断数据库中数据表是否存在

《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…

第11章 规划过程组(11.6规划进度管理)

第11章 规划过程组(二)11.6规划进度管理,在第三版教材第385页;#软考中级##中级系统集成项目管理师# 文字图片音频方式 第一个知识点:主要输出 1、进度管理计划 准确度 定义活动持续时间估算的可接受区间&#xff0…

第二周:计算机网络概述(下)

一、计算机网络性能指标(速率、带宽、延迟) 1、速率 2、带宽 3、延迟/时延 前面讲分组交换的时候介绍了,有一种延迟叫“传输延迟”,即发送一个报文,从第一个分组的发送,到最后一个分组的发送完成的这段时…

机器学习算法 —— 决策树

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 目录 背景描述数据说明数据来源决策树的介绍和应用决策树的介绍决策树的优点决策树的缺点决策树的应用实战演示导入模块训练模型数据和模型可视化(需要用到graphviz可视化库)模型预测基于pengui…