在stm32gpio传参设置中使用bool开关led

代码中,led_set 函数用于设置 LED 的状态,而 led_state 是一个静态(static)布尔变量,用于在函数调用之间保持 LED 的状态。静态变量在函数第一次被调用时初始化,并且在其后的函数调用中保持其值。这意味着 led_state 只在 led_set 函数或同一文件的其他函数中可见和可修改,因为它被声明为静态。

这里是代码的详细解释:

  1. 函数声明和静态变量声明

  • void led_set(bool on); 声明了一个函数,该函数接受一个布尔参数 on 并没有返回值。
  • static bool led_state = false; 声明并初始化了一个静态布尔变量 led_state,其初始值为 false。由于它是静态的,它只在这个文件的作用域内可见,并且在程序执行期间只被初始化一次。
  1. 函数定义

  • 这个函数接受一个布尔参数 on,并将其赋值给 led_state 变量。
  • 然后,它使用条件运算符(?:)来决定是写入 Bit_RESET 还是 Bit_SET 到指定的 GPIO 引脚。如果 on 为 true,则写入 Bit_RESET;如果 on 为 false,则写入 Bit_SET。这里的 Bit_RESET 和 Bit_SET 通常是宏或枚举值,用于表示低电平和高电平(但具体取决于硬件和库的实现)。
  • GPIO_WriteBit(LED_PORT, LED_PIN, ...) 是一个假设的函数调用,用于控制连接到特定 GPIO 端口和引脚的 LED。
  1. 辅助函数

  • led_on 函数调用 led_set 并传递 true 作为参数,以打开 LED。
  • led_off 函数调用 led_set 并传递 false 作为参数,以关闭 LED。
  • led_toggle 函数通过调用 led_set 并传递 !led_state(即 led_state 的逻辑非)作为参数来切换 LED 的状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值