51单片机/STM32F103/STM32F407学习1_点亮LED灯

目录:

  • 基础知识
  • 单片机从0实现
  • 单片机GPIO介绍

参考连接:

  • 野火霸天虎教程 https://doc.embedfire.com/products/link/zh/latest/mcu/stm32/ebf_stm32f407_batianhu_v1_v2/download/stm32f407_batianhu_v1_v2.html

x.1 基础知识

x.1.1 指针中的取地址,解地址

取地址符号为&,解地址符号为*,使用如下,

int *p = &value;	// 取地址用&
*p = 1;	// 解地址用*

x.1.2 宏编译的条件判断

使用预编译宏来取消编译,

#if 0

...

#endif

x.1.3 C语言的位操作

常见的位操作有左移,右移,取反,与,或,异或,这部分参考c语言中文网,

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

x.1.4 C语言的置位,清零

第六个位置这个地方设置为1,其他地方不变,使用或操作|= (1<<6)

第六个位置这个地方设置为0,其他地方不变,使用与操作&= ~ (1<<6)

第六五位置设置为0,其他地方不变,&= ~(0x03)<<6;因为0x03是11。

案例如下,孰能生巧,

在这里插入图片描述

x.2 单片机从0实现

x.2.1 51单片机

由于51单片机内部已经实现了寄存器映射,所以在这里可以直接使用寄存器别名来进行访问。

电流从正极流向负极,从高压流向低压(因为存在电势差),电子流动方向和电流流向相反。

如果LED灯的电路图如下,则只需要控制P0,0端口将数值设置为0便可以将电路点亮,

在这里插入图片描述

则代码如下便可实现LED灯的开关,

在这里插入图片描述

x.2.2. stm32f103

寄存器映射指给寄存器地址映射一个别名,这个功能可以通过reg52.hstm32f10x.h两个文件来实现。

LED灯对应的接口为PB0,则意味着是GPIOx_ODR寄存器中的GPIOB0_ODR

GPIOx_ODR是指 general purpose intput output x _ Output data register,是通过ODR来控制LED灯开关的。

  1. SOC厂商在已经有ARM芯片基础上设计了三类地址总线,为AHB,APB2,APB1总线。我们先在参考手册中第二章 存储器和总线架构中找到挂载在APB2地址总线下的GPIOB的绝对地址,

在这里插入图片描述

  1. 我们需要ODR来控制LED灯,所以我们需要找到ODR0的绝对地址,我们根据地址偏移来计算,

在这里插入图片描述

  1. 我们使用ODR0来控制PB0的端口,看了电路图我们知道要实现LED中G颜色的开关,我们需要将PB0的端口电压设置为0V,这个时候我们即将PB0设置为0便可,

在这里插入图片描述

  1. 我们需要通过CRL寄存器来告诉MCU, LED中的PB0为输出值,即配置IO口为 输出。

  2. 打开RCC的时钟寄存器。

最终我们的代码书写如下,

在这里插入图片描述

x.2.2 stm32f407

  1. 更改GPIOx_MODER模式寄存器为输出

AHB1下

  1. 更改RCC时钟控制器

AHB1下

  1. 更改GPIOx_ODR数据寄存器

AHB1下

代码如下,stm32f4xx.h文件内容,

在这里插入图片描述

main.c文件内容,

在这里插入图片描述

x.3 单片机GPIO介绍

x.3.1 GPIO简介

在这里插入图片描述

在这里插入图片描述

407有144个引脚,引脚供电大部分是5V,GPIO属于引脚,但并不是所有引脚都属于GPIO;查找每一个GPIO功能通过数据手册查找。

在这里插入图片描述

x.3.2 GPIO 功能框图讲解

GPIO功能框图如下,

在这里插入图片描述

I/O引脚就是芯片和PCB印刷电路板的解除方式,而I/O引脚的左侧则是芯片的内部电路。

BSRR 指的是bit set reset register,其中set是指置位,是低16位,输出高电平置1。reset是指复位,是指高16位,输出低电平置1。

输入输出是相对ARM芯片而言的,如果往芯片写数据叫输入,从芯片往外写数据叫输出。

在输入中TTL使得输入模拟信号,当大于1.8V时为高电平,当低于1.8V时为低电平。

输入的输入较为简单,输出则较为复杂,输出的流程图如下,

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 异常处理、继承、重写/重载

一、java异常处理&#xff1a; 三种类型的异常&#xff1a;检查性异常、运行时异常、错误。 所有的异常类是从java.lang.Exception类继承的子类。Exception类是Throwable类的子类。除了Exception类外&#xff0c;Throwable还有一个子类Error。 异常类有两个主要的子类&#…

Linux | 从虚拟地址到物理地址

前言 本章主要讲解虚拟地址是怎么转化成物理地址的&#xff0c;以及页表相关知识&#xff1b;本文环境默认为32位机器下&#xff1b;如果你连什么是虚拟地址都不知道可以先看看下面这篇文章&#xff1b; Linux | 进程地址空间-CSDN博客 一、概念补充 页表&#xff1a;是一种数据…

Appium移动自动化测试—如何安装Appium

前言 Appium 自动化测试是很早之前就想学习和研究的技术了&#xff0c;可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。 反观各种互联网的招聘移动测试成了主流&#xff0c;如果再不去学习移动自动化测试技术将会被淘汰。 web自动化测试的路线是这样的&#xff1…

如何利用 AI 写一本书并实现被动收入

如何每个月写一本能赚 5000 美元的书&#xff1f;不少人不知道如何在一周内写作和出版一本书 这里有个教程教你如何利用 AI 写一本书并实现被动收入 [收藏起来以备后用] 推出书友智能写作工具&#xff1a;Bookwiz 不用花几年时间独自写作一本小说&#xff0c;人工智能可以作…

【MATLAB源码-第84期】基于matlab的802.11a标准的OFDM系统误码仿真对比QPSK,16QAM。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 基于802.11a标准的OFDM&#xff08;正交频分复用&#xff09;系统是一种高效的无线通信技术&#xff0c;特点如下&#xff1a; 频带与信道&#xff1a; 802.11a工作在5 GHz频段&#xff0c;这个频段相对于2.4 GHz&#xff08…

Playcanvas后处理-辉光bloom

&#xff08;一&#xff09;Bloom介绍 Bloom&#xff08;辉光、光晕、泛光&#xff09;是一种常见的摄像机后处理&#xff08;PostProcessing&#xff09;效果&#xff0c;用于再现真实世界相机的成像伪影。这种效果会产生从图像中明亮区域边界延伸的光条纹&#xff08;或羽毛…

MyBatis框架——Mybatis操作数据库之简单的insert操作的实现

入门_MyBatis中文网https://mybatis.net.cn/getting-started.html一些配置文件的模板可以从mybatis的官网中找到。 一、MyBatis操作数据库步骤 1、读取MyBatis配置文件mybatis-config.xml。 mybatis-config.xml作为mybatis的全局配置文件&#xff0c;配置MyBatis的运行环境等…

「C++」AVL树的实现(动图)

&#x1f4bb;文章目录 AVL树概念AVL的查找AVL树的插入 代码部分AVL树的定义查找插入旋转 &#x1f4d3;总结 AVL树 概念 AVL树又名高度平衡的二叉搜索树&#xff0c;由G. M. Adelson-Velsky和E. M. Landis发明&#xff0c;顾名思义&#xff0c;其任意节点的左右子树最大高度…

模方4.1.0新版本正式上线啦!

新增单体化自动建模&#xff0c;直角搭桥、复制三角形两种方式补洞等功能&#xff0c;还有更多功能优化&#xff0c;让你的三维模型更好看&#xff01; 欢迎前往官网下载试用→武汉大势智慧-实景三维-云端建模-新型基础设施

2023年中国数字员工行业发展趋势分析:行业市场规模迅猛增长[图]

数字员工是指利用人工智能、自然语言处理、机器学习等技术&#xff0c;通过数字渠道提供自动化或半自动化的客户服务形式。数字人系统通过音频和视频结构化解析技术处理用户输入&#xff0c;并使用自然语言处理和机器学习等技术分析用户意图&#xff0c;生成相应的对话内容&…

串口工作流程硬核解析,没有比这更简单的了!

串口通信,就是我们常说的串口通讯,是一种短距离、点对点的数据传输方式。它基于串行通信协议,通过串口线连接设备进行数据交互。串口在很多硬件系统中广泛使用,是工控机、单片机、外设设备之间信息交换的重要接口。 那串口是怎么工作的呢?我们举个形象的例子。假设A和B是两台…

算法——双指针

一、背景知识 双指针&#xff08;Two Pointers&#xff09;&#xff1a;指的是在遍历元素的过程中&#xff0c;不是使用单个指针进行访问&#xff0c;而是使用两个指针进行访问&#xff0c;从而达到相应的目的。对撞时针&#xff1a; 两个指针方向相反对撞指针一般用来解决有序…

盘点35个Python书籍Python爱好者不容错过

盘点35个Python书籍Python爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 链接&#xff1a;https://pan.baidu.com/s/1uf-MXZc9aC7y3Qju6VnCYw?pwd8888 提取码&#xff1a;8888 书籍名称&#xff1a; Django教…

效率提升利器:Automa插件的实用指南

Automa是一个chrome扩展&#xff0c;通过拖拽0代码实现工作流&#xff0c;模拟网页的各种点击、表单填写等操作&#xff0c;使用时点击插件脚本一键执行&#xff0c;或者设置定时执行&#xff0c;从而简化我们的工作。 功能介绍 官方文档地址&#xff1a;Getting started | Au…

Altium Designer学习笔记2

原理图的绘制 需要掌握的是系统自带原理图库元件的添加。

HR问:有没有免费的人才测评工具?

人才测评工具分为两种&#xff0c;一种是测评量表&#xff0c;一种是操作量表的工具&#xff0c;在线测评的方式没有普及之前&#xff0c;很多朋友都习惯把测评量表&#xff08;测评试题&#xff09;称为测评工具&#xff0c;其实我认为量表就是量表&#xff0c;而试试量表测评…

全国的科技创新情况数据分享,涵盖2020-2022年三年情况

随着国家对科技创新的重视和大力支持&#xff0c;全国的科技创新情况越来越受到关注。 我们根据中国城市统计年鉴的这方面指标&#xff0c;分析汇总得出全国科技创新情况数据&#xff0c;需要说明的是&#xff0c;由于统计年鉴指标调整&#xff0c;每一年的数据并非字段相同&a…

隐私计算迎来千亿级风口,一文讲清它的技术理论基础

一、安全多方计算 在讨论安全多方计算(下文使用 MPC) 之前&#xff0c;我们先讨论安全多方计算的设定&#xff0c;在MPC 的所有参与者中&#xff0c;某些参与者可能会被一个敌手 (攻击者) 控制&#xff0c;在敌手控制下的参与者被称为被腐化方&#xff0c;它在协议执行过程中会…

算法(圆的定义和相关术语)

无向图的度 图中每一个顶点的度定义为以该项点为一个端点的边的数目 #include <cstdio>const int MAXN 100;int degree[MAXN] { 0 };int main() {int n, m, u, v;scanf("%d%d", &n, &m);//在输出边度的时候就已经表示度的数目了&#xff0c;所以用一…

Atlassian发布最新补贴政策,Jira/Confluence迁移上云最低可至零成本

到2024年2月15日&#xff0c;Atlassian将不再提供对Jira、Confluence、Jira Service Management等Server版产品的支持。 近期&#xff0c;Atlassian推出了一项针对云产品的特殊优惠。现在从Server版迁移到云版&#xff0c;您能享受到高额补贴&#xff0c;甚至成本低至零元。立…