首页 > 其他分享 >STM32学习(2)-GPIO输出

STM32学习(2)-GPIO输出

时间:2024-07-20 15:28:09浏览次数:18  
标签:Delay 0000 输出 STM32 GPIOA InitStructure GPIO 500

GPIO输出

2.1 GPIO输出

1.GPIO简介

GPIO(General Purpose Input Output)通用输入输出口
可配置为8种输入输出模式
引脚电平:0V~3.3V,部分引脚可容忍5V
输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等
输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等

2.GPIO基本结构

在这里插入图片描述

3.GPIO位结构

在这里插入图片描述

4.GPIO模式

通过配置GPIO的端口配置寄存器,端口可以配置成以下8种模式
在这里插入图片描述
浮空\上拉\下拉输入
在这里插入图片描述
模拟输入,用于ADC转换
在这里插入图片描述
开漏\推挽输出
在这里插入图片描述
复用开漏\推挽输出
在这里插入图片描述

5.硬件电路

在这里插入图片描述

2.2LED闪烁&LED流水灯&蜂鸣器

1.LED闪烁

main函数代码

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	
	while(1)
	{
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
		Delay_ms(500);
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
		Delay_ms(500);
	}
}

2.LED流水灯

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	
	while(1)
	{
		GPIO_Write(GPIOA,~0x0001);//0000 0000 0000 0001
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0002);//0000 0000 0000 0010
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0004);//0000 0000 0000 0100
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0008);//0000 0000 0000 1000
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0010);//0000 0000 0001 0000
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0020);//0000 0000 0010 0000
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0040);//0000 0000 0100 0000
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0080);//0000 0000 1000 0000
		Delay_ms(500);
		
	}
}

3.蜂鸣器

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	
	
	while(1)
	{
		GPIO_ResetBits(GPIOB,GPIO_Pin_12);
		Delay_ms(500);
		GPIO_SetBits(GPIOB,GPIO_Pin_12);
		Delay_ms(500);
	}
}

标签:Delay,0000,输出,STM32,GPIOA,InitStructure,GPIO,500
From: https://blog.csdn.net/LHYYUYG/article/details/140565928

相关文章

  • STM32被拔网线 LWIP的TCP无法重连解决方案
    目录一、问题描述二、项目构成三、问题解决1.问题代码2.解决思路3.核心代码: 四、完整代码1.监测网口插入拔出任务2.TCP任务3.创建tcp任务4.删除tcp任务五、总结一、问题描述最近遇到一个问题,就是我的stm32设备作为tcp客户端和上位机交互,如果在连接过程中网线......
  • STM32+USART串口(1)
    GPIO口的复用功能是有对应的,作USART使用的话要选择对应的GPIO;可以参考引脚定义;(1)串口通信分为:串行通信和并行通信;(2)通信波特率:通常用波特率(BaudRate)来衡量数据通信的速度。波特率是指每秒钟传送数据的位数,单位为bps(BitPerSecond),用户可根据需要进行设定(3)异步通信:在异步通......
  • RK3588 tinyalsa_hal添加一个自定义声卡输入和输出
    一、添加输出声卡输出流程图:在声卡列表snd_out_sound_cards里添加一个自己的声卡,比如---a/tinyalsa_hal/audio_hw.h+++b/tinyalsa_hal/audio_hw.h@@-216,6+216,7@@enumsnd_out_sound_cards{SND_OUT_SOUND_CARD_SPDIF,SND_OUT_SOUND_CARD_SPDIF_1,......
  • 常用sprintf格式化输出
    %d  有符号十进制整数%u  无符号十进制整数 %ld  有符号长整型(longsigned)%lu  无符号长整型(longunsigned) %c  字符%s  字符的字符串  %f  十进制浮点数%lf:双精度浮点数  //------------------------分隔符-------------......
  • Python入门知识点 4--格式化输出与运算符
    1、格式化输出name='小赵'age=18#print('大家好,我是'+name+'我今年'+age+'岁了')#字符串和整型不能拼接print('大家好,我是'+name+'我今年'+str(age)+'岁了')#把整型转换成字符串输出,但比较麻烦print('大家好,我是',name,'我今年',age,&#......
  • 具有I2S输出的多模数字麦克风ICS-43434咪头LR引脚接地或电源WS接LRCLK
    外观和丝印ICS-43434麦克风3.50mmx2.65mm,丝印为434(图片不好拍,隐约可见434)一般描述ICS-43434是一款数字IS输出底部收音孔麦克风。完整的ICS-43434解决方案包括MEMS传感器、信号调理、模数转换器、抽取和抗混叠滤波器、电源管理以及行业标准的24位12S......
  • Linux驱动开发-06蜂鸣器和多组GPIO控制
    一、控制蜂鸣器1.1控制原理 我们可以看到SNVS_TAMPER1是这个端口在控制着蜂鸣器,同时这是一个PNP型的三极管,在端口输出为低电平时,蜂鸣器响,在高电平时,蜂鸣器不响 1.2在Linux中端口号的控制        gpiochipX:当前SoC所包含的GPIO控制器,我们知道I.MX6UL/I.MX6ULL......
  • paddleocr识别并按行输出结果
    frompaddleocrimportPaddleOCR#初始化OCR引擎ocr=PaddleOCR(use_angle_cls=True,lang="ch")#使用中文模型#对图像进行OCR识别img_path='./imgs/img_3.png'result=ocr.ocr(img_path,cls=True)#按y坐标对文本块进行排序sorted_result=sorted(result,......
  • 【VERILOG】输入脉冲下降沿触发输出一组双脉冲 (附带testbench)
    `timescale1ns/1psmodulepulseturn( clk, reset_n, in, out); input clk; input in; input reset_n; output reg out; reg[7:0] cnt; reg[1:0]data_in; assignpos_edge=~data_in[1]&data_in[0]; assignneg_edge=data......
  • 【MATLAB源码-第149期】基于MATLAB的2ASK,2FSK,2PSK,2DPSK等相干解调仿真,输出各节点波
    操作环境:MATLAB2022a1、算法描述2ASK(二进制幅移键控)、2FSK(二进制频移键控)、2PSK(二进制相移键控)和2DPSK(二进制差分相移键控)是数字调制技术中的基本调制方式,它们在无线通信、数据传输等领域有着广泛的应用。相干解调是这些调制方式中一个重要的解调技术,它要求接收端的本地振......