stm32led,蜂鸣器,光敏电阻GPIO输出

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的闪烁

 光敏电阻的使用同样也是读取利用读取端口的操作:当光敏电阻检测到环境光度较暗时输出为第电平,光度较高时为高电平,便可用读取端口的函数来让相关的设备进行操作

 

  

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值