Ctrl+shift+n 快速添加文件夹
GPIO操作:3个步骤
使用RCC开启GPIO时钟 使用GPIO_init 初始化 GPIO 使用输出或输入的函数控制GPIO
rcc函数: 找到RCC_AHB RCC_APB2 RCC_APB1
GPIO函数: GPIO_init() 结构体赋值 GPIO_struct()结构体赋初值 GPIO_init() 还有8个读写函数
第一步: 调用RCC使能函数使能GPIO 使能函数(GPIOA ENABLE)
第二步:调用GPIO初始化函数
初始化结构体里面的内容(输出模式,输出引脚,速度)
利用按位或可以设置多个引脚,GPIO_Pin_all 为设置所有端口
初始化函数(GPIO名称 ,&GPIO结构体(需要先进行定义),GPIO输出函数)
第三个函数,后面是自己写入,数据来进行控制(看函数定义)BIT_SET 高电平 BIT_RESTE低电平(如果参数写0或者1的话要强制转换为枚举类型BItAction)
第四个函数,同时控制多个端口 PortVal得写成16进制 :0x0001 对应2进制位 0000 0000 0000 0001
例如控制GPIOA的0——7 就得写成(0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080)
点亮led 利用输出高低电平的函数+延时函数来进行led的闪烁
流水灯:利用第四个函数写入GPIO的8个引脚,然后对PortVal的值进行操作,
开漏模式:高电平没有驱动能力
推挽输出:高低电平都有驱动能力
A15,B3,B4,为调试端口,设置为普通的io口还需要进行设置
蜂鸣器的使用,跟led一样
代码部分:
通过按键来控制led的点亮
硬件采用 模块化的编程
初始化led的程序:GPIO的模式为推挽输出
将led的开关用函数封装起来,在开关函数中将led所在的引脚设置为高低电平即可实现led的开关
按键的输入为上拉输入,当没有按键按下时默认为高电平,当按键按键按下时为第电平,这时可以用端口读取函数来读取端口的值,然后进行相关的操作
输出函数的读取操作:可以进行状态的翻转:例如led的闪烁
光敏电阻的使用同样也是读取利用读取端口的操作:当光敏电阻检测到环境光度较暗时输出为第电平,光度较高时为高电平,便可用读取端口的函数来让相关的设备进行操作