3,stm32 LED闪烁,流水灯,蜂鸣器

GPIO-Mode

AIN模拟输入

IN-FLOATNG浮空输入

IPD下拉输入

IPU上拉输入

Out_OD是开漏输出

Out_PP推挽输出

AF_OD复用开漏输出

AF-PP复用推挽输出aer

GPIO的几个输入输出函数

c2626d230e9e433683835ddfb901a2ee.png

1,可以把指定的端口设置为高电平

2,可以把指定的端口设置为低电平

3根据第三参数的值来设置指定 的端口

4第二个参数可以同时对16个端口进行写入操作

bd4ba4e9f5a745b68b6d73d45126d036.png

 以上是第一个LED灯的代码

效果LED每500ms闪烁一次

bfc5d9899e09468d9e9e2f30ab10f743.png

以上是LED流水灯

PA15 PB3 PB4 也是调试端口,要用做普通的端口的话还需要进行一些配置

2e39ddf2cce94a99872a0e128f0fe5b4.png

以上是蜂鸣器

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用STM32控制LED灯和蜂鸣器的按键实验的步骤: 1. 首先,需要编写一个控制按键的程序。可以使用库函数来实现按键的检测和状态判断。例如,可以使用GPIO库函数来配置按键引脚,并使用外部中断来检测按键的状态变化。 2. 接下来,需要编写控制LED灯和蜂鸣器的程序。可以使用库函数来配置LED灯和蜂鸣器的引脚,并使用位操作来控制它们的状态。例如,可以使用GPIO库函数来配置LED灯和蜂鸣器的引脚为输出模式,并使用位操作来设置引脚的电平状态。 3. 在主程序中,可以通过循环来检测按键的状态,并根据按键的状态来控制LED灯和蜂鸣器的状态。例如,当按键按下时,可以翻转LED灯的状态,并开启蜂鸣器;当按键释放时,可以再次翻转LED灯的状态,并关闭蜂鸣器。 下面是一个示例代码,演示了如何使用STM32控制LED灯和蜂鸣器的按键实验: ```c #include "stm32f10x.h" void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; // 配置按键引脚 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置LED灯引脚 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); // 配置蜂鸣器引脚 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); } int main(void) { GPIO_Configuration(); while (1) { // 检测按键状态 if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0) { // 按键按下,翻转LED灯状态,开启蜂鸣器 GPIO_WriteBit(GPIOC, GPIO_Pin_8, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_8))); GPIO_WriteBit(GPIOB, GPIO_Pin_0, Bit_SET); } else if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) == 0) { // 按键按下,翻转LED灯状态,关闭蜂鸣器 GPIO_WriteBit(GPIOC, GPIO_Pin_8, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_8))); GPIO_WriteBit(GPIOB, GPIO_Pin_0, Bit_RESET); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值