7月5日

1.1;学习了GPIO的四种输出模式:通用输出推挽,通用输出开漏,复用输出推挽,复用输出开漏

通用:单片机的cpu直接控制GPIO外设,输出高低电平

复用:cpu通过其他外设间接控制GPIO外设,输出高低电平

推挽:推是指向外输出电流,挽是指外面向内输入电流。工作时N-MOS,和P-MOS交替接通,N接通,P断开,则说明寄存器输出0,引脚输出低电平。P接通,N断开,则说明寄存器输出1,引脚输出高电平。

开漏:N-MOS的漏极一直处于短路状态,即P-MOS一直断开,此时,寄存器输出0,引脚输出低电平,寄存器输出1,引脚悬空,呈现高阻抗状态。

1.2:IO的最大输出速度

IO的最大输出速度:向IO写入0,1,且不失真的最大速度

上升时间:IO口从低电平上升到高电平所需要的时间

下降时间:IO口从高电平下降到低电平所需要的时间

保持时间:IO口在高电平保持的时间

限制最大速度的因素:上升时间和下降时间的长短

1.3LED闪灯实验

有两种接法,推挽,开漏

此次实验是开漏

代码如下

#include "stm32f10x.h"
#include "delay.h"

int main(void)
{
    //开启GPIOC接口
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
    
    //初始化IO引脚,PC13通用输出开漏模式,最大输出速度是2MHZ
    GPIO_InitTypeDef GPIO_InitStruct={0};
    
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13;
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_OD;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;
    
    GPIO_Init(GPIOC,&(GPIO_InitStruct));
    
    while(1)
    {
        
        GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);//写0,亮
        Delay(1000);//延迟100ms
      GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);//写1,灭
        Delay(1000);
    }
}

1.4GPIO4种输入模式

输入上拉:上拉电阻闭合

输入下拉:下拉电阻闭合

输入浮空:上拉,下拉电阻都闭合

1.5按钮实验

代码如下

#include "stm32f10x.h"
#include "delay.h"

int main(void)
{
    //开启GPIOC接口
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    
    //初始化IO引脚,PC13通用输出开漏模式,最大输出速度是2MHZ
    GPIO_InitTypeDef GPIO_InitStruct={0};
    
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;
    GPIO_Init(GPIOA,&(GPIO_InitStruct));
    
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1;
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;
    
    GPIO_Init(GPIOA,&(GPIO_InitStruct));
    
    
    //GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
    while(1)
    {
        if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==Bit_RESET)
        {
            
       GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
      }
        else
        {
            GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
        }
  }
}

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐