实训4---硬件部分---点灯实验--按键控制灯实验--uart串口实验

目录

三、硬件部分

【1】点灯实验

【2】按键控制灯实验

【3】uart串口实验

核心代码:

实验视频

实现流水灯

uart串口实验


三、硬件部分

GPIO

【1】点灯实验

1.首先找到要点的灯,在板子上看到对应的白色丝印,比如绿灯D10.然后打开底板原理图找到LED灯

点亮绿灯只需要将网络标号LED4设置为低电平即可导通,绿灯亮。

CON1的5引脚

2.然后去核心板原理图去找对应的网络标号LED4,看到对应的引脚为PB0,即将PB0设置为低电平即可点亮

  1. 配置STM32CubeMX

1)打开STM32CubeMX

  1. 双击第二个Ux

然后:

然后:

然后:

然后:

打开keil

1)打开创建文件的路径下MDK-ARM里面的工程文件

2)打开main.c

  1. 编写代码,注意写在BEGIN和END之间

4)编译(F7)烧写(F8),烧写插入STLink,打开stm32电源

  1. 按复位键

效果:


任务:

        实现流水灯:

        黄灯亮一秒

        蓝灯亮一秒

        绿灯亮一秒

【2】按键控制灯实验

  1. 找到按键的位置PA8
  2. 配置STM32CubeMX,PA8,输入,PB0输出
  3. 生成KEIL工程
  4. 写代码

读PA8引脚状态,如果按下反转灯

HAL_Delay(100);//延时消抖

int  ret  = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8);

if(ret == 1)

{

HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);//反转PB0

}

【3】uart串口实验

配置PA9,PA10分别为发送端和接收端

CubeMX

File->new project 输入stm32f051k8,选择ux

打开生成后的工程文件中的main.c

打开串口调试工具:

核心代码:

uint8_t buttonState=0;   //记录按键时灯的状态while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 *///HAL_Delay(1000);//按下就亮,放开就灭/*if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8)){HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);}else{HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);}*///按下就亮,再按就灭
/*if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8) == GPIO_PIN_SET) {HAL_Delay(50); // 增加延时以避免抖动if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8) == GPIO_PIN_SET) {if(buttonState == 0) {HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);buttonState = 1;} else {HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);buttonState = 0;}while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8) == GPIO_PIN_SET); // 等待按键释放}}
*/char buf[32]={0};HAL_UART_Receive(&huart1,buf,sizeof(buf),100);HAL_Delay(1000);//串口1HAL_UART_Transmit(&huart1,buf,sizeof(buf),1000);HAL_Delay(2000);}/* USER CODE END 3 */
}

实验视频

实现流水灯

流水灯

uart串口实验

uart串口实验

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

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

相关文章

服务器数据恢复-raid6离线磁盘强制上线后分区打不开的数据恢复案例

服务器数据恢复环境: 服务器上有一组由12块硬盘组建的raid6磁盘阵列,raid6阵列上层有一个lun,映射到WINDOWS系统上使用,WINDOWS系统划分了一个GPT分区。 服务器故障&分析: 服务器在运行过程中突然无法访问。对服务…

什么是EMC工程师?

摘要: 今天来介绍一下什么是EMC工程师。一 EMC工程师起源要了解什么是EMC工程师,我们首先要了解什么是EMC。 今天来介绍一下什么是EMC工程师。 一 EMC工程师起源 要了解什么是EMC工程师,我们首先要了解什么是EMC。 工程师这个职业相信大家都耳熟能详…

1.决策树

目录 1. 什么是决策树? 2. 决策树的原理 2.1 如何构建决策树? 2.2 构建决策树的数据算法 2.2.1 信息熵 2.2.2 ID3算法 2.2.2.1 信息的定义 2.2.2.2 信息增益 2.2.2.3 ID3算法举例 2.2.2.4 ID3算法优缺点 2.2.3 C4.5算法 2.2.3.1 C4.5算法举例 2.2.4 CART算法 2.2.4…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十六:统计报表模块相关功能实现

一、本章内容 本章使用Echarts及DataV实现常用图表、特殊图表、地图及综合图表等图表展示功能。 1. 详细课程地址: https://edu.csdn.net/course/detail/38183 2. 源码下载地址: 点击下载 二、界面预览 三、开发视频 3.1 B站视频地址: 基于VUE3+Layui从

Python——yolov8识别车牌2.0

目录 一、前言 二、关于项目UI 2.1、修改界面内容的文本 2.2、修改界面的图标和图片 三、项目修改地方 四、其他配置问题 一、前言 因为后续有许多兄弟说摄像头卡顿,我在之前那个MATS上面改一下就可以了,MAST项目:基于YOLOv8的多端车流检…

【leetcode100-019】【矩阵】螺旋矩阵

【题干】 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 【思路】 不难注意到,每进行一次转向,都有一行/列被输出(并失效);既然已经失效,那我…

倒计时1天!WAVE SUMMIT+ 2023将开启,五大亮点抢鲜看!

10句话2分钟,挑战成功说服宿管阿姨开门,这个人群中的“显眼包”是一个接入文心大模型4.0游戏里的NPC,妥妥 “工具人”实锤~ 尝试用AI一键自动识别好坏咖啡豆,看一眼便知好坏,真正“颜值即正义”&#xff0…

信息筑牢安全防线|隐私安全保护仍任重道远!

在日常生活中,就连小小一张快递面单可以显示很多关键信息,让不法分子盗取个人信息有机可乘。 今年2月1日,《快递电子运单》国家标准开始实施。根据国家邮政局数据,中国快递日均包裹量3.4亿余件,隐私面单日均使用量已超…

13.鸿蒙HarmonyOS App(JAVA)文本框组件按钮点击提示

13.鸿蒙HarmonyOS App(JAVA)文本框按钮点击提示 点击按钮触发组件状态,点击改变颜色 文本框组件,文本居中,斜体,左右对齐,点击显示提示信息 Button button(Button) findComponentById(ResourceTable.Id_btn_1); but…

git集成github(一):主要步骤

一、创建仓库 1、创建本地git仓库 在pcharm主界面顶栏,点击VCS,再点击创建git仓库,然后选择项目根路径,点击确认。这时,可以看到顶栏的VCS变成了git。 2、远程仓库下载到本地 打开一个远程仓库,点击code…

C# Winform教程(一):MD5加密

1、介绍 在C#中,MD5(Message Digest Algorithm 5)是一种常用的哈希函数,用于将任意长度的数据转换为固定长度的哈希值(通常是128位)。MD5广泛用于校验数据完整性、密码存储等领域。 2、示例 创建MD5加密…

元宇宙与VR虚拟现实的未来如何?

从科幻小说到商业现实 自从 Facebook年更名为 Meta 以来,关于元宇宙的热议不断,人们对虚拟世界的兴趣也重新燃起,因为尽管虚拟现实 (VR) 的概念由来已久,但该技术现在才开始真正得以应用。 定义元宇宙和虚拟现实 首先是 The Met…

【Java、Python】获取电脑当前网络IP进行位置获取(附源码)

我相信看到这篇博客的时候心里肯定是想解决自己的一个问题的,而这篇博客我就以简单快速的方式解决这些烦恼! 一、获取当前IP 在Java中自带了一些自己的流对象来获取当前的IP地址,不多说我们直接上代码。 //获取当前网络ip地址 ipAddress Ine…

TCP并发服务器

一.进程实现TCP并发服务器 #include <func.h> #define PORT 6666 #define IP "192.168.124.42"void handler(int arm) {while(waitpid(-1,NULL,WNOHANG) > 0); } int main(int argc, const char *argv[]) {//接受17号信号signal(17, handler);i…

2014年第三届数学建模国际赛小美赛A题吹口哨解题全过程文档及程序

2014年第三届数学建模国际赛小美赛 A题 吹口哨 原题再现&#xff1a; 哨子是一种小装置&#xff0c;当空气被迫通过开口时会发出声音。哨声的巨大而引人注目&#xff0c;使其对警察和体育裁判来说至关重要。当救生员、迷路的露营者或犯罪受害者使用它们时&#xff0c;它们可以…

网站显示不安全警告怎么办?消除网站不安全警告超全指南

网站显示不安全警告怎么办&#xff1f;当用户访问你的网站&#xff0c;而您的网站没有部署SSL证书实现HTTPS加密时&#xff0c;网站就会显示不安全警告&#xff0c;这种警告&#xff0c;不仅有可能阻止用户继续浏览网站&#xff0c;影响网站声誉&#xff0c;还有可能影响网站在…

阿赵UE学习笔记——5、创建关卡元素

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   之前介绍了从空白模板创建关卡&#xff0c;接下来尝试着在这个空白的世界里面&#xff0c;创建一些内容。 一、创建地面 1、创建面片作为地面 创建——形状——平面&#xff0c;可以创建一个面片 在细节面板设置合适的…

分布式锁竟然这么简单?(荣耀典藏版)

大家好&#xff0c;我是小月夜枫&#xff0c;作为一个后台开发&#xff0c;不管是工作还是面试中&#xff0c;分布式一直是一个让人又爱又恨的话题。它如同一座神秘的迷宫&#xff0c;时而让你迷失方向&#xff0c;时而又为你揭示出令人惊叹的宝藏。 今天&#xff0c;让我们来…

项目零散记录

Ts托管 仅本项目禁用本地vscode内置的ts服务 提交代码前的检查 husky(哈士奇)工具&#xff08;是一个git hooks工具&#xff09; 1、安装 pnpm dlx husky-init && pnpm install安装的时候&#xff0c;出现如下报错 解决方案&#xff0c;需要先执行git init初始化…

Android10.0 人脸解锁流程分析

人脸解锁概述 人脸解锁即用户通过注视设备的正面方便地解锁手机或平板。Android 10 为支持人脸解锁的设备在人脸认证期间添加了一个新的可以安全处理相机帧、保持隐私与安全的人脸认证栈的支持&#xff0c;也为安全合规地启用集成交易的应用&#xff08;网上银行或其他服务&am…