【STM32-野火】(四)构建库函数雏形,结构体封装
(一).封装原理及过程:
对照一下两图:
代码如下://强制类型转换为结构体指针,此时GPIO-B的地址成为结构体的起始地址
main.c文件
(二).第二种封装形式:函数配合子函数点亮LED
这个头文件不变。
(三)代码再升级优化():
void GPIO_Init(GPIO_Typedef* GPIOx, GPIO_InitTypedef* GPIO_InitStruct)
{
uint32_t currentmode = 0x00, currentpin = 0x00, pinpos = 0x00, pos = 0x00;
uint32_t tmpreg = 0x00, pinmask = 0x00;
/*---------------------- GPIO 模式配置 --------------------------*/
// 把输入参数GPIO_Mode的低四位暂存在currentmode
currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F)<