STM32 | 超声波写倒车雷达小系统

01、知识回顾

STM32 | HC-SR04 超声波测距模块 | DHT11数字温湿度传感器(第七天)
STM32 | 数字温湿度传感器DHT11
STM32 | HC-SR04 超声波测距模块
STM32 | DHT11数字温湿度传感器实战
STM32 | 超声波实战
STM32 | 方式1:手机发送指令,开发板向手机发送温湿度;方式2:手机发送指令,开发板定时向手机发送温湿度。

02、作业2

2、写倒车雷达小系统

(1)超声波模块实时测量距离,并实时显示在电脑串口助手 

(2)可通过按键调节安全报警距离

(3)开发板4个LED灯表示危险等级(共四个等级),越危险,亮灯个数越多

(4)开发板蜂鸣表示危险等级(共四个等级),越危险,蜂鸣器响应频率越快

(5)系统要考虑人性化

03、led

// 头文件#ifndef __LED_H#define __LED_H#include "stm32f4xx.h"#define LED0_ON    GPIO_ResetBits(GPIOF, GPIO_Pin_9)#define LED0_OFF  GPIO_SetBits(GPIOF, GPIO_Pin_9)#define LED1_ON    GPIO_ResetBits(GPIOF, GPIO_Pin_10)#define LED1_OFF  GPIO_SetBits(GPIOF, GPIO_Pin_10)#define LED2_ON    GPIO_ResetBits(GPIOE, GPIO_Pin_13)#define LED2_OFF  GPIO_SetBits(GPIOE, GPIO_Pin_13)#define LED3_ON    GPIO_ResetBits(GPIOE, GPIO_Pin_14)#define LED3_OFF  GPIO_SetBits(GPIOE, GPIO_Pin_14)void Led_Init(void);#endif_____________________________________//源文件#include "led.h"/*********************************引脚说明:LED0 -- PF9LED1 -- PF10LED2 -- PE13LED3 -- PE14**********************************/void Led_Init(void){  GPIO_InitTypeDef  GPIO_InitStruct;    //使能GPIOE组时钟  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);      //使能GPIOF组时钟  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);      GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_9|GPIO_Pin_10;    //引脚9 10  GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_OUT;  //输出模式  GPIO_InitStruct.GPIO_OType  = GPIO_OType_PP;  //推挽输出  GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_UP;    //上拉  GPIO_InitStruct.GPIO_Speed  = GPIO_Speed_50MHz; //速度   GPIO_Init(GPIOF, &GPIO_InitStruct);    GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_13|GPIO_Pin_14;    //引脚13 14  GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_OUT;  //输出模式  GPIO_InitStruct.GPIO_OType  = GPIO_OType_PP;  //推挽输出  GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_UP;    //上拉  GPIO_InitStruct.GPIO_Speed  = GPIO_Speed_50MHz; //速度   GPIO_Init(GPIOE, &GPIO_InitStruct);      GPIO_SetBits(GPIOF, GPIO_Pin_9);  GPIO_SetBits(GPIOF, GPIO_Pin_10);  GPIO_SetBits(GPIOE, GPIO_Pin_13);  GPIO_SetBits(GPIOE, GPIO_Pin_14);}

04、Key

// 头文件#ifndef __KEY_H#define __KEY_H#include "stm32f4xx.h"void Key_Init(void);#endif// 源文件#include "key.h"/*********************************引脚说明:KEY0--PA0KEY1--PE2KEY2--PE3KEY3--PE4**********************************/void Key_Init(void){  GPIO_InitTypeDef  GPIO_InitStruct;      //使能GPIOA组时钟  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);  //使能GPIOE组时钟  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);      GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_0;                //引脚0  GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_IN;                //输入模式  GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_UP;                //上拉  GPIO_Init(GPIOA, &GPIO_InitStruct);      GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4;    //引脚2 3 4  GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_IN;                //输入模式  GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_UP;                //上拉  GPIO_Init(GPIOE, &GPIO_InitStruct);  }

05、EXti

EXTI是外部中断(External Interrupt)的缩写,它是指在微处理器或微控制器上用于处理外部触发的中断请求的机制。通过配置外部中断,可以让系统在外部事件发生时中断当前程序的执行,转而处理外部事件。

在很多嵌入式系统中,外部中断是一种常见的事件处理方式,用于实时响应外部输入信号或事件。外部中断可以来自外部的触发信号,如按键、传感器信号、外部设备的信号等。

使用外部中断时,需要配置相应的中断触发条件和中断服务程序。当外部中断触发条件满足时,系统会立即响应中断,并执行相应的中断服务程序来处理事件。外部中断的优点是能够及时响应外部事件,实现实时性。

在一些嵌入式开发平台(如STM32系列微控制器)中,通常会提供专门的外部中断控制器(比如EXTI模块),开发者可以通过配置相应的寄存器来实现外部中断的设置和使用。通过外部中断机制,可以简化对外部事件的处理,提高系统的响应速度和灵活性。

// 头文件#ifndef __EXTI_H#define __EXTI_H#include "stm32f4xx.h"void Exti_PA0_Init(void);void Exti_PE2_Init(void);void Exti_PE3_Init(void);void Exti_PE4_Init(void);int get_value(void);#endif

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

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

相关文章

OpenAI已全面开放自定义GPT以及文件上传等功能

今天,OpenAI兑现了前段时间做出的承诺:免费向所有用户开放GPT-4o。这意味着所有的免费用户都能使用自定义GPT模型、分析图表等其他GPT-4o新功能了。现在ChatGPT界面长这样: 可以看出,免费用户也能使用GPT store中定义好的模型&…

Python开发与应用实验1 | 开发环境安装配置

*本文来自博主对专业课 Python开发与应用 实验部分的整理与解析。 *一些题目可能会增加了拓展部分(⭐)。拓展部分不是实验报告中原有的内容,而是博主本人的补充,以便各位学习参考。 *实验环境为:Python 3.10 &#xf…

java实现地形dem产汇流流场数据提取解析

一、基础概念 在GIS和气象学、海洋学、大气科学、水文学等领域,"提取流场"通常指的是从数据集中识别和分析流体(如水流、风场、洋流、大气流)的运动模式和流向的过程。这个过程涉及数据处理、可视化和分析技术,下面是提…

Wpf 使用 Prism 实战开发Day31

登录数据绑定 1.首先在LoginViewModel 登录逻辑处理类中&#xff0c;创建登录要绑定属性和命令 public class LoginViewModel : BindableBase, IDialogAware {public LoginViewModel(){ExecuteCommand new DelegateCommand<string>(Execure);}public string Title { ge…

vue-标签选择

效果 选中后 代码 <span :class"[item.bealtrue?p_yx_span span_active :span p_yx]" click"onTagSelect(index)" v-for"(item,index) in tagList" :key"index" >{{item.name}} </span> // 列表值 tagList:[ {id: 1, na…

R语言ggplot2包绘制世界地图

数据和代码获取&#xff1a;请查看主页个人信息&#xff01;&#xff01;&#xff01; 1. 数据读取与处理 首先&#xff0c;从CSV文件中读取数据&#xff0c;并计算各国每日收入的平均签证成本。 library(tidyverse) ​ df <- read_csv("df.csv") %>% group_…

PostgreSQL基础(六):PostgreSQL基本操作(二)

文章目录 PostgreSQL基本操作(二) 一、字符串类型 二、日期类型 三、

Qt中使用继承时信号槽定义原则

在Qt代码中&#xff0c;当使用继承来创建新的类时&#xff0c;信号与槽的使用需要注意以下几点&#xff1a; 父类的信号与槽&#xff1a;当一个类继承自另一个类时&#xff0c;它继承了父类的所有信号与槽。可以通过connect函数将父类的信号连接到对应的槽函数上。 新类的信号…

基于分步傅立叶数值算法的一维非线性薛定谔方程求解matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于分步傅立叶数值算法的一维非线性薛定谔方程求解matlab仿真. 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 3.核心程序 ........................…

今天,组长和研发总监吵起来了 ...

插&#xff1a; AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家(前言 – 人工智能教程 ) 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

下载HF AutoTrain 模型的配置文件

下载HF AutoTrain 模型的配置文件 一.在huggingface上创建AutoTrain项目二.通过HF用户名和autotrain项目名,拼接以下url,下载模型列表(json格式)到指定目录三.解析上面的json文件、去重、批量下载模型配置文件(权重以外的文件) 一.在huggingface上创建AutoTrain项目 二.通过HF用…

JavaIO详解(磁盘操作、字节操作、字符操作、对象操作、网络操作、NIO)

Java IO 目录 一、概览二、磁盘操作三、字节操作 实现文件复制装饰者模式 四、字符操作 编码与解码String 的编码方式Reader 与 Writer实现逐行输出文本文件的内容 五、对象操作 序列化Serializabletransient 六、网络操作 InetAddressURLSocketsDatagram 七、NIO 流与块通道与…

Flutter中如何让Android的手势导航栏完全透明?

Flutter 开发中 安卓机器都有 像ios 的手势操作栏&#xff0c; 也就是屏幕底下的 那条线。 但这条线默认是有颜色的 &#xff08;像下面这样&#xff09; 一、全屏幕方式 void main() {// 全屏沉浸式SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []…

Vxe UI vxe-upload 上传组件,显示进度条的方法

vxe-upload 上传组件 查看官网 https://vxeui.com 显示进度条很简单&#xff0c;需要后台支持进度就可以了&#xff0c;后台实现逻辑具体可以百度&#xff0c;这里只介绍前端逻辑。 上传附件 相关参数说明&#xff0c;具体可以看文档&#xff1a; multiple 是否允许多选 li…

面向对象实验Java

找了很久的解决方案&#xff0c;所以想记录下 Android Studio 如何让SimpleAdapter显示更新后的数据&#xff0c;以下面这个为例&#xff1a; SimpleAdapter listItemAdapter new SimpleAdapter(this,playerData,R.layout.activity_item,new String[]{"rank",&quo…

JDBC常见异常(4)—No suitable driver found for url

异常代码 表示Java程序在尝试连接到Oracle数据库时&#xff0c;没有找到合适的JDBC驱动程序。 java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:localhost:1521:ORCL异常分析 根据异常的字面意思&#xff0c;大概可以分析原因 这通常是因为驱动程序…

FreeRTOS基础(四):静态创建任务

上一篇博客&#xff0c;我们讲解了FreeRTOS中如何动态创建任务&#xff0c;那么这一讲&#xff0c;我们从实战出发&#xff0c;规范我们在FreeRTOS下的编码风格&#xff0c;掌握静态创建任务的编码风格&#xff0c;达到实战应用&#xff01; 目录 一、空闲任务和空闲任务钩子…

【算法】位运算算法——消失的两个数字(困难)

题解&#xff1a;消失的两个数字(位运算算法) 目录 1.题目2.题解3.示例代码如下4.总结 1.题目 题目链接&#xff1a;LINK 2.题解 本题要求时间复杂度O(N),空间复杂度O(1),分别否了我们 排序遍历 和 哈希数组 的想法。想要在规定时间/空间复杂度内完成本题&#xff0c;需要借…

智密腾讯云直播组建--客户端API简介

客户端API指的是伴随着Demo提供的ZhimiTRTCLiveRoom SDK&#xff0c;常见于(工程目录/utils/ZhimiTRTCLiveRoom/sdk.js)&#xff0c;并且以开放对象的方式重新包装一次对外开放&#xff0c;可参考(工程目录/utils/ZhimiTRTCLiveRoom/index.js)&#xff0c;该包装方式主要是方便…

数据结构05:树与二叉树 习题02[C++]

考研笔记整理&#xff0c;本篇作为二叉树的入门习题&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 之前的博文链接在此&#xff1a;数据结构05&#xff1a;树与二叉树[C]-CSDN博客~&#x1f95d;&#x1f95d; 第1版&#xff1a;王道书的课后习题~&#x1f9e9;&am…