GPIO 简介
GPIO 是通用输入输出端口的简称,简单来说就是 STM32 可控制的引脚, STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。STM32 芯片的 GPIO 被分成很多组,每组有 16 个引脚,如型号为 STM32F103VET6 型号的芯片有 GPIOA、 GPIOB、 GPIOC 至 GPIOE 共 5 组 GPIO,芯片一共 100 个引脚,其中 GPIO 就占了一大部分,所有的 GPIO 引脚都有基本的输入输出功能。
最基本的输出功能是由 STM32 控制引脚输出高、低电平,实现开关控制,如把 GPIO 引脚接入到 LED 灯,那就可以控制 LED 灯的亮灭,引脚接入到继电器或三极管,那就可以通过继电器或三极管控制外部大功率电路的通断。
最基本的输入功能是检测外部输入电平,如把 GPIO 引脚连接到按键,通过电平高低区分按键是否被按下。
实验:使用寄存器点亮 LED 灯
启动文件
“ startup_stm32f10x_hd.s” 的文件,它里边使用汇编语言写好了基本程序,当 STM32 芯片上电启动的时候,首先会执行这里的汇编程序,从而建立起 C 语言的运行环境,所以我们把这个文件称为启动文件。
在编程之前我们要先实现寄存器映射,有关寄存器映射的代码都统一写在 stm32f10x.h 文件中
main 文件
在 main 文件中先编写一个 main 函数,里面什么都没有,暂时为空。
错误提示 SystemInit 没有定义。从分析启动文件时我们知道, Reset_Handler 调用了该函数用来初始化 SMT32 系统时钟,为了简单起见,我们在 main 文件里面定义一个 SystemInit 空函数,什么也不做,为的是骗过编译器,把这个错误去掉。
// 函数为空,目的是为了骗过编译器不报错
这时再编译就没有错了,完美解决。