GPIO点灯
1.简介
GPIO是通用输入输出端口的简称,简单来说就是STM32可控的引脚。
基本输出功能是控制低电平和高电平,实现开关控制
基本输出功能是检测外部输出电平。
2.基本结构
硬件部分略过
2.1开漏输出
2.2推挽输出
最常使用
GPIO_MODE_OUT_PP = 0x10; //推挽
2.3输出数据寄存器
输出电平由输出数据寄存器GPIOx_ODR提供,可以通过修改寄存器的值从而改变输出电平。
置位复位寄存器GPIOx_BSRR也可以修改输出寄存器的值
2.4复用功能输出
2.5输入数据寄存器
模拟信号转化为数字信号,储存在输入寄存器GPIOx_IDR
2.6输入模式
GPIO_MODE_AIN = 0x0; //模拟输入 GPIO_MODE_IN_FLOATING = 0x04; //浮空输入 GPIO_MODE_IPD = 0x28; //下拉输入 GPIO_MODE_IPU = 0x48; //上拉输入
3.使用寄存器点灯
3.1.硬件连接
Px口引出导线连接电阻和LED灯之后,和3.3V的电源项链
目标是把GPIO的引脚设置成推挽输出模式,默认下拉输出低电平
3.2.启动文件
startup_stm32f10x_md.s为汇编语言程序,最先被执行,建立起c语言运行环境。
3.3 stm32f10x.h文件
寄存器是给一个已经分配好地址的特殊内存空间取的别名,这个特殊的内存空间可以通过指针操作。
关于寄存器的映射的代码统一写在stm32f10x.h文件中。
/*片上外设基地址*/ #define PERIPH_BASH ((unsigned int)0x40000000) //总线基地址,GPIO都挂载到APB2上 #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) //GPIO外设基地址 #define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00) //GPIOA寄存器地址,强制转换成指针 #defin GPIOA_CRL *(unsigned int*)(GPIOA_BASE+0x00) #defin GPIOA_CRH *(unsigned int*)(GPIOA_BASE+0x04) #defin GPIOA_IDR *(unsigned int*)(GPIOA_BASE+0x08) #defin GPIOA_ODR *(unsigned int*)(GPIOA_BASE+0x0C) #defin GPIOA_BSRR *(unsigned int*)(GPIOA_BASE+0x10) #defin GPIOA_BRR *(unsigned int*)(GPIOA_BASE+0x14) #defin GPIOA_LCKR *(unsigned int*)(GPIOA_BASE+0x18)
3.4 main文件
posted on 2022-03-14 08:42 MIXTAPE_208 阅读(98) 评论(0) 收藏 举报
浙公网安备 33010602011771号