Buzzer封装: 蜂鸣器是GPIO的一个典型应用,下面我们利用C++语言的继承机制完成对Buzzer类的封装,Buzzer类继承自CGpio类,CGpio类的具体实现参考:ch1 gpio封装 亮一张蜂鸣器的电路吧O(∩_∩)O! Buzzer调用效果: int main(){ CBsp bsp; bsp.Init(); Buzzer buzzer(PORT_A,PIN_0); buzzer.ON(); if(buzzer.isOn()){ //喂,你在滴滴滴吗? printf("buzzer is on"); //滴滴滴,正出声呢 } else { printf("buzzer is off"); //我不是很爱讲话 } return 0; } 具体实现: #ifndef _BUZZER_H_ #define _BUZZER_H_ #include "gpio.h" #include "buzzer.h" class Buzzer:public CGpio{ public: Buzzer(PORT port,PIN pin); void ON(void); void OFF(void); bool isOn(void)const; //提供获得蜂鸣器是开还是关的方法; private: uint16_t Pin; GPIO_TypeDef *Gpio; bool onState; }; #endif#include "buzzer.h" Buzzer::Buzzer(PORT port,PIN pin): CGpio(port,pin, GPIO_Mode_OUT, GPIO_Speed_40MHz, GPIO_OType_PP, GPIO_PuPd_DOWN){ onState = true; OFF(); } void Buzzer::ON(void){ if(onState == false){ this->setBit(1); } } void Buzzer::OFF(void){ if(onState == true){ this->setBit(0); } } bool Buzzer::isOn(void)const{ return onState; } 相关文章: 2022-12-23 2021-11-15 2021-09-25 2021-04-13 2021-11-29 2021-05-21 2021-11-21