STM32F2 GPIO 配置问题

发布者:fengting最新更新时间:2016-06-30 来源: eefocus关键字:STM32F2  GPIO  配置问题 手机看文章 扫描二维码
随时随地手机看文章
在编写GPIO模拟i2c时,下面两个初始化有不同

 

第一种方法:

     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    GPIO_WriteBit(GPIOC, GPIO_Pin_9, Bit_SET);  //zyboy

 

第二种方法:

    GPIO_WriteBit(GPIOC, GPIO_Pin_9, Bit_SET);  //zyboy
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

 

 

通过示波器观察 第一种方法:会出现GPIO瞬间有个低电平,之后变成高电平,第二种方法:一直为高电平

 

原因:GPIO上电默认输入模式,GPIO寄存器值为0,高阻悬浮状态,GPIO电平由外围电路决定。

由于i2c总线,GPIO外接上拉电阻,故上电时GPIO表现为高电平。如果程序初始化开始设置GPIO为输出,再设置GPIO为高,由于GPIO寄存器值默认上电是0,故GPIO会是有个瞬间的低电平然后变高。如果事先把GPIO 寄存器设置为1,再设置GPIO为输出,则GPIO一直为高。

关键字:STM32F2  GPIO  配置问题 引用地址:STM32F2 GPIO 配置问题

上一篇:[STM32] 关于USART接收中断的BUG和注意事项
下一篇:stm32中断向量表初探

推荐阅读最新更新时间:2024-03-16 14:58

TI - MCU - MSP430使用指南12 -> GPIO
GPIO即通用输入输出接口,是MCU最基本的功能,可以控制I/O口的高低电平,输入输出或映射到其他模块等功能。 如下图所示,为MSP430FR2355芯片的引脚图: 在图中,每个引脚后标注的则是每个引脚具备的复用功能,GPIO是基本功能,除去电源,地,时钟等引脚,每个引脚都可作为通用IO口使用,那么如何按照自己的要求配置每个引脚的功能呢? 下面就描述下GPIO引脚相关的寄存器(MSP430FR2xx/FR4xx): 注:并非每个MSP430 MCU都包含下属所有的寄存器,根据MCU功能的复杂性决定,具体包含的寄存器名称和数量,请查看每个芯片的datasheet和user’s guide。 首先先整体看一下GP
[单片机]
TI - MCU - MSP430使用指南12 -> <font color='red'>GPIO</font>
STM8S003F3 选项字
STM8S003F3 GPIO功能复用的设置,有两种办法,一种是程序烧录可参考本类中最近文章,另一种是SWIM方法,在IAR中直接设置。现将这种方法的步骤介绍如下: 1. 在IAR中进入download / debug模式 2. 点击ST-LINK选项 3. 修改对应的选项字 选择对应的选项字,右键点击选择 STM8S003F3选项字功能如规格书描述如下:
[单片机]
STM8S003F3 选项字
lPC1788的GPIO驱动
#include led.h void led_init(void) { //p1.14 p0.16 p1.13 p4.27 LPC_SC- PCONP |= (1 15);//打开时钟 //选择管脚模式,1788为每个管脚都设计了一个寄存器来选择管脚模式 LPC_IOCON- P1_14 = 0x00;//选择gpio功能,禁止迟滞 不反向 正常推挽 LPC_IOCON- P1_14 |= (2 3);//上拉 P1dir(14) = 1; //输出 P1low(14) = 1;//设置为低电平 LPC_IOCON- P0_16 = 0x00;//选择gpio功能,禁止迟滞 不反向
[单片机]
STM32 学习笔记——GPIO口控制
在配置STM32外设的时候,任何都要先使能该外设的时钟!PB2ENR 是 APB2总线上的外设时钟使能寄存器 我们要使能的PORTA和PORTD的时钟使能位,分别在的时钟使能位,分别在bit2和bit5,只要将这两位置1就可以使能PORTA和PORTD了 STM32的每个IO端口都有7个寄存器来控制。 他们分别是:配置模式的2个32位的端口配置寄存器 CRL 和 CRH;2个32位的数据寄存器IDR 和 ODR ;1个32位的置 复位寄存器 BSRR ;一个 16 位的复寄存器 位的复寄存器 BRR ;1个 32 位的 锁存 寄存器 LCKR ; 这里我们仅介绍常用 的 几个寄存器,我们常用的 IO 端口寄存器只有 4
[单片机]
【STM32】GPIO工作原理(八种工作方式分析,附电路图)
STM32F1xx官方资料: 《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO ) 芯片数据手册(datasheet) STM32的GPIO介绍 STM32引脚说明 GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、
[单片机]
【STM32】<font color='red'>GPIO</font>工作原理(八种工作方式分析,附电路图)
LPC2103学习之GPIO
LPC2103关于引脚的寄存器有两个PINSEL0与PINSEL1,都是32位宽度。 PINSEL0与PINSEL1寄存器的每两位控制一个引脚的功能,则一个脚最多有4种功能。其中PINSEL0控制着P0.0到P0.15的引脚。PINSEL1控制着P0.16到P0.31的引脚。 PINSEL寄存器的设置只需两个步骤。一找到要设置的引脚。二是选择引脚的功能。 如图所示: 下面举例说明 1.设置P0.0为GPIO功能 PINSEL0 = 0x00 /*设置P0.0到P0.15都为GPIO*/ 2.设置P0.0为TxD0功能 PINSEL0 = (PINSEL0 & 0xFFFFFFFC) | 0x01;
[单片机]
LPC2103学习之<font color='red'>GPIO</font>
STM32CubeMX | 33-使用GPIO读取温度传感器数据(DS18B20)
本篇详细的记录了如何使用STM32CubeMX配置 STM32103RET6 的硬件GPIO外设读取温度传感器DS18B20的数据。 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是一个工业DTU,主控芯片为STM32103RBT6。 DS18B20 DTU开发板板载一颗DS18B20温度传感器。 3. 使用STM32CubeMX生成工程 选择芯片型号 打开STM32CubeMX,打开MCU选择器: 搜索并选中芯片STM32F103RET6: 配置时钟源 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC; 如果使用默认内部时钟(HSI),
[单片机]
STM32CubeMX | 33-使用<font color='red'>GPIO</font>读取温度传感器数据(DS18B20)
STM32系统时钟设置,采用外部有源晶振相关配置问题
在调试STM32系统时钟设置时遇到一个问题:TIM2定时1Ms,TIM2中断服务函数time++,time=100时LED状态改变。程序运行后发现LED不是按照0.1S的时间闪烁,闪烁的很慢。 查找程序发现在系统时钟初始化时,RCC_HSEConfig(RCC_HSE_Bypass); 语句配置不对,此语句解释为HSE晶振被外部时钟旁路。指将芯片内部的用于外部晶体起振和功率驱动等的部分电路和XTAL_OUT引脚断开,这时使用的外部时钟是有源时钟或者其他STM32提供的CCO输出等时钟信号,直接单线从XTAL_IN输入,这样即使外部有晶体也震荡不起来了。 因为之前用的是有源晶振,接法如下图1:HSE配置如下:RCC_HSEConfi
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved