单片机入门---最重要的外设控制(GPIO)

用HALL 库配置GPIO以及相关寄存器 文章目录一 .初始化GPIO(一)定义一个结构体变量GPIO_InitStruct,该变量类型是GPIO_InitTypeDef。(二).使能时钟。(三)配置引脚的初始化电平。(四).通过结构体变量配置具体的引脚。二.GPIO相关寄存器1.**GPIO端口模式寄存器(GPIOx_MODER)(x=A...I)**2.**GPIO端口输出类型寄存器(GPIOx_OTYPER)(x = A...I)*... 阅读详情

本文中主要介绍STM32中的GPIO,在最后简单介绍下PIC的IO设置。

基本功能需求

我们在使用STM32的管脚时,主要使用串口,I2C,SPI,或者直接作为输入输出管脚。而这些管脚的实现都是通过GPIO完成的。
下面简单介绍下GPIO的四种输入模式和四种输出模式。
在这里插入图片描述
四种输出模式
首先我们回顾一下我们常用的输出形式,I2C,SPI,输出高低电平,通过外部上拉输出高电平。
推挽输出:该模式下引脚可以输出高低电平,可连接驱动数字器件。
开漏输出:该模式下只能输出低电平,不能输出高电平,需要引脚加上拉电阻才能得到高电平。
推挽模式和开漏模式对比:
1 推挽模式延时小,开漏模式上拉延时大。
2 开漏模式可以连接与主控电平不匹配的器件,只需要将上拉电阻的上拉端连接到对方电平即可。
3 开漏模式可以以小博大,利用外部电路的驱动能力,减小内部电流,内部只需要很小的栅极驱动电流。

复用推挽输出:UART、SPI等输出引脚就是复用的推挽输出。
复用开漏输出:I2C就是这种模式,所以用I2C的时候外部需要上拉电阻。
四种输入模式
浮空输入:这种模式一般多用于检测外部高低电平状态,比如按键。浮空输入时上下拉电阻都没有连接,引脚电平状态不确定。那这时候读取的电平是否是合理的按键值呢???
上拉、下拉输入:很明显,这种模式下必定是连接了上拉或者下拉电阻。
模拟输入:我们通常使用的ADC采样正是采集的模拟信号。

另外需要特别强调:在使用GPIO时,需要注意alternate function的使用,有两个方法可以验证是否可用,一个是使用cubeMX进行选择,如果能正确的选择我们需要的功能,则说明这个跨越或者不跨越AF的功能可用。或者查阅下面的表,来验证我们选择的功能是否能够正常工作。
在这里插入图片描述
我们在使用GPIO的过程中,有时候可能需要进行输出输出等GPIO功能的切换,下面提供一段参考代码

void Convert_sysrst_gpio(int io)
{
	  GPIO_InitTypeDef GPIO_InitStruct = {0};
	  if (io == 1) {//input
		  /*Configure GPIO pin : PtPin */
		  GPIO_InitStruct.Pin = SYS_RST_X_Pin;
		  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
		  GPIO_InitStruct.Pull = GPIO_PULLUP;
		  HAL_GPIO_Init(SYS_RST_X_GPIO_Port, &GPIO_InitStruct);
	  } else if (io == 0) {
		  /*Configure GPIO pin Output Level */
		    HAL_GPIO_WritePin(GPIOC, SYS_RST_X_Pin, GPIO_PIN_RESET);
		  /*Configure GPIO pins : PCPin PCPin PCPin */
		    GPIO_InitStruct.Pin = SYS_RST_X_Pin;
		    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
		    GPIO_InitStruct.Pull = GPIO_NOPULL;
		    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
		    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
	  }
}

当我们传入参数1时,为input模式,传入参数为0时,为output模式。

PIC单片机
在这里插入图片描述
每个端口都有三个工作寄存器,这些寄存器是:

  • TRIS 寄存器(数据方向寄存器)
  • PORT寄存器(读取的引脚的电平设备)
  • LAT寄存器(输出锁存器)
    在文档中对PORT寄存器和LAT寄存器的描述应该是一样的。上述相当于做出了区分和解释。
    Writes to PORTA are actually written to corresponding LATA register. Reads from PORTA register is return of actual I/O pin values.
stm32的HAL库i2c从机实现 stm32的i2c默认就是slave模式,本文基于HAL库实现中断方式的接收和发送,首先是初始化gpio和i2c,代码如下: I2C_HandleTypeDef I2cHandle; void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle) { GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC... 阅读详情

相关推荐

尝试使用CubeMX做stm32开发之四:GPIO配置

参考《STM32中文参考手册_V10》,研究CubeMX中有关GPIO的配置

Forster-C的博客 7943

【无标题】

HAL库配置定时器的输入捕获与输出比较,以及定时器的输入捕获与输出比较的用法列子。

qq_41328470的博客 1303

单片机外设配置及相关使用

单片机的外设是指与单片机核心处理部分相连的附加硬件模块,它们能够扩展单片机的功能和能力。外设指的是单片机外部的外围功能模块,比如键盘控制芯片,液晶,A/D转换芯片,等等。外设可通过单片机的I/O,SPI,I2C等总线控制。

weixin_42462436的博客 2216

hal库配置time需要修改库函数的地方

在这个库里添加引脚的初始化,需要添加time的就可以在下面进行添加 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) {   GPIO_InitTypeDef GPIO_InitStruct;   if(htim->Instance==TIM10)   {   /* USER CODE BEGIN TIM10_MspPostInit 0

宁静以致墨的专栏 6486

MCU 如何控制外设

单片机如何控制外设

Arvin_ing的博客 2891

51单片机5(GPIO简介)

(f)那么,除了这一种方式可以查找之外,还可以通过我们的数据手册,前面我们在介绍这个芯片的时候,我们可以看到stc 89系列的一个中文参考手册,中文参考手册里面,我们可以看到这一个,在这个芯片的一个管脚,管脚的一个图当中,我们可以看一下stc89c系列的一个广角,看一下stc89c,管脚图下面对应的就是一些管脚的说明,我们看一下管脚的一个说明。(b)通常我们给这个单片机的一个晶振是0~40,当然我们使用的是12M或者是11.0592M的一个晶振。

Yz202267的博客 1418

单片机外设基本概念_单片机外设有哪些,外设功能是什么?

单片机外设有哪些?单片机内部的外设一般包括:串口控制模块,SPI模块,I2C模块,A/D模块,PWM模块,CAN模块,EEPROM,比较器模块,等等,它们都集成在单片机内部,有相对应的内部控制寄存器,可通过单片机指令直接控制。外设指的是单片机外部的外围功能模块,比如键盘控制芯片,液晶,A/D转换芯片,等等。外设可通过单片机的I/O,SPI,I2C等总线控制。51单片机的外设实验:实验1:外部中断0...

weixin_39614276的博客 5546

STM32单片机GPIO接口入门介绍

​ STM32单片机的GPIO接口是与外部设备交互的关键接口,提供了多种工作模式以适应不同的应用场景。本文介绍了GPIO接口的入门方法,包括其工作模式、配置方法以及操作函数。

Eaili的博客 672

单片机的要务——控制外设

单片机的要务——控制外设       首先明确一个概念:当我们使用单片机的时候,我们在使用它的什么?计算能力?逻辑分析能力?NO!我们使用得最多的是它所提供得各个功能模块(外设模块)。       所谓外设,是指将特定功能做成一个模块,然后给出控制端口,让处理器来控制。只要处理器给了足够的信息,外设就能完成特定的一组任务(个人理解o.O)。        举例来说(以下只是简单举例,实际还有

jaysmile的博客 4376

单片机外设控制与网络通信协议实现教程

单片机,全称为单片微型计算机(Single-Chip Microcomputer),是一种将中央处理器(CPU)、存储器、输入输出接口等主要计算机部件集成在一块芯片上的微型计算机系统。它具有体积小、功耗低、控制功能强、扩展灵活、微型化、使用方便等特点,广泛应用于工业控制、家用电器、汽车电子、通信设备、医疗器械、航空航天等领域。

kkchenjj的博客 2318

YOLOv8改进 - 注意力篇 - 引入CAA注意力机制

YOLOv8改进 - 注意力篇 - 引入CAA注意力机制

浪子L的博客 5223

单片机的外设

一.外设有哪些? 单片机的外设可分为两类:1.内部外设;  2.外设; 1.     单片机内部的外设一般包括:串口控制模块,SPI模块,I2C模块,A/D模块,PWM模块,CAN模块,EEPROM,比较器模块,等等,它们都集成在单片机内部,有相对应的内部控制寄存器,可通过单片机指令直接控制。 2.  外设指的是单片机外部的外围功能模块,比如键盘控制芯片,液晶,A/D转换芯片,等等。外设可通...

惊鸿一瞥 2万+

数据库迁移策略实战:MySQL到PostgreSQL

数据库迁移是一项复杂且细致的任务,需要充分的准备工作、合适的迁移策略和严格的验证与优化步骤。通过选择合适的迁移工具、进行手动迁移和应用程序适配、以及迁移后的验证与优化,可以确保数据迁移的成功和业务的连续性。希望本文的分享能够为大家在MySQL到PostgreSQL的数据库迁移实战中提供一些有用的参考和启示。

shejizuopin的博客 1732

【STM32】STM32单片机入门

从外设开始学习STM32单片机

s_little_monster的博客 1万+

避坑指南:CST粒子工作室Track Solver常见的5个参数设置错误

本文深入剖析了CST粒子工作室中Track Solver在电子枪仿真时常见的5个关键参数设置错误,包括空间电荷模型选择、发射源定义、材料边界处理、监视器配置及求解器稳定性设置。通过对比错误与正确做法,帮助用户避开陷阱,确保粒子追踪仿真的物理准确性与数值稳定性,从而获得更精准的电子枪仿真结果。

dapp9builder的博客 487

【电磁场与电磁波课程设计】基于HFSS的双频微带天线仿真及设计

第五代移动通信技术(5G)的商用已经近在眼前,作为移动通信中最为重要的功能组件,面向5G通信应用的手机天线与基站天线的技术研究与设计成为近年来的热点。随着移动通信中“跳频”“扩频”等通信技术发展,为了满足与多个终端的通信要求,实现多系统共用和收发共用等功能,这就要求天线在不同频段下工作。根据国家工信部的最新规定,5G移动通信的中频段被划定在3.3 GHz-3.5 GHz及4.8 GHz-5.0 GH,面向5G移动通信的天线应具有高增益、小型化、宽频段及高隔离度等技术特征,以满足5G通信的高传输速率、波束智能

weixin_44450575的博客 1万+

STM8单片机学习笔记·GPIO的片上外设寄存器

本文讲述了STM8位单片机的GPIO 工作模式 相关寄存器 芯片引脚内部状态 同时通过对单片机外界寄存器的读写数据来完成对引脚的配置,以及本文参考B站龙顺宇STM8单片机教程连接放在最后。在嵌入式开发中又很多常用的ic hc164 tja1050 这些都是常用的ic芯片 而ic芯片的定义是集成电路是一种微型电路或者器件,把一个电路中所需要的器件 晶体管 电阻 电容 电感等原件与布线连在一起制作在一块或者几小块晶体上,然后封装在外壳内,留出芯片的基本功能引脚。ic图片。

看,是大狗 2113

SAP销售订单POD实操:从VL01N创建到VLPOD差异处理,保姆级避坑指南

本文详细解析SAP销售订单POD全流程,从VL01N创建到VLPOD差异处理,提供保姆级避坑指南。涵盖核心业务逻辑、前置配置、销售订单创建、交货单处理及差异解决方案,帮助用户高效管理供应链执行环节,确保财务与物流的准确对接。

weixin_27219587的博客 626

GPIO模拟时序控制外设1——WS2812B

STM32F103C8T6使用GPIO模拟驱动WS812B RGB彩灯

qq_41954556的博客 1万+

详解在linux上安装vpn客户端

详解在linux上安装vpn客户端

FuncPlotCalc 8427

【教程4>第6章>第3节】LS信道估计与均衡系统MATLAB仿真实现

1]姬国伟,葛利嘉,龙秀虹.基于LS信道估计的SC-FDE系统性能研究[J].军事通信技术, 2010(1):6.DOI:CNKI:SUN:JSTY.0.2010-01-013.在无线通信中,信号在空间传播时,随着传输距离增加,能量会逐渐扩散,导致信号幅度减小,即发生衰减。第四个图表示的是提取的信道估计值,可以看到,在不插值的前提下,得到的信道估计值基本接近真实的信道h。从第五个图可知,通过信道估计,对接收信号进行了校正和补偿。信道模型,先通过awgn加入噪声,然后乘以hreal,模拟通过信道。

FPGA/MATLAB学习教程/源码/项目合作开发 389

基本外设GPIO

GPIO(通用输入/输出)是微控制器的基本接口,用于与外部设备交互。

m0_73683627的博客 1098

PCL RANSAC采样一致性算法

一直想了解一下RANSAC算法的一些原理,所以就趁着自己闲了下来整理了一下,做了这篇笔记。 文章目录一、简介二、PCL中的RANSAC 一、简介 RANSAC是一种随机参数估计算法。RANSAC从样本中随机抽选出一个样本子集,使用最小方差估计算法对这个子集计算模型参数,然后计算所有样本与该模型的偏差,再使用一个预先设定好的阈值与偏差比较,当偏差小于阈值时,该样本点属于模型内样本点(内点),否则就是外样本点(外点)。记录当前的内点的个数,然后重复上述的过程,直到模型中的内点达到最多,那么此时的模型参数即为最

dayuhaitang1的博客 2116

STM32入门——基本 GPIO 的输出控制

GPIO 即 通用型输入输出端口(General-Purose Input / Output)的简称,简单来说就是 STM32 单片机的可控制的引脚,功能类似于 8051 系列单片机的 P0-P3 端口。STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部的通讯、控制以及数据采集的功能。

倾晨灬雨曦的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

32单片机学习记录1之GPIO

通过GPIO控制器内部框图可知,借鉴F103C8T6的框图可知,上面是F407的模拟模式也是复用模式通用推挽输出通用开漏输出复用推挽输出复用开漏输出浮空输入上拉输入下拉输入模拟输入主要区别在于输出方式(推挽/开漏)和工作状态(通用/复用)。STM32F103和407的芯片好像GPIO口的工作模式不一样,但是大致可以分为通用,复用,模拟结合输出类型形成的工作模式F103 采用 4 位模式配置(GPIO_CRH/CRL),较老旧,模式配置较复杂。

weixin_51753483的博客 1477

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

基于库函数的stm32单片机的外设使用

记录一下STM32F103C8T6单片机的各个外设,主要是为了梳理外设与两个时钟间的关系

m0_52673128的博客 2854

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 单片机入门--常见单片机PIC\STM32
下一篇: 单片机入门---ADC采样
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值