void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
我们要使用STM32的片上外设
第一步,要打开对应外设的时钟。
第二步,要配置对应外设的寄存器。
我们在使用STM32标准库进行开发时,会大量使用宏定义和结构体来定义或操作定义寄存器。其中GPIO是这样的,先打开APB2上对应的GPIO的时钟,然后会GPIO的寄存器写入配置,即可使用。
为了方便函数操作,定义了GPIO的寄存器结构体类型,如下图:
函数GPIO_INIT();的第一个参数就是传入GPIO寄存器的首地址,然后函数内部用结构体指针对结构体成员进行赋值,第二个参数差不多的效果,但是第二个结构体类型会实际用来生成变量,然后将配置装到这个变量里面去,最终由函数来完成对寄存器的赋值写入。这个其实就是换了一种对寄存器赋值的手法,本质还是去操作寄存器。
GPIO的有多种模式,看一下初始化结构体定义:
同样,用结构体指针将配置内容取出,然后赋值给寄存器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)