简单的代码,但你们都是不简单的航专生
#include"TimerOne.h"
int frequency = 500;
int buzzerPin = 2;
int buttonPin = 6;
int buttonState = 0;
void setup() {
Serial.begin(9600);
pinMode(buzzerPin, OUTPUT);
pinMode(buttonPin, INPUT);
uint32_t fTransmit = 1000; // KHz
TCCR1A = 0b01000000;
TCCR1B = 0600001001; // CTCHIt
OCR1A = F_CPU / (2000 * fTransmit) - 1;
pinMode(9, OUTPUT) ;
char strbuf[255];
sprintf(strbuf,"设置载波频率:%d KHZ",(F_CPU / (2 * (1 + OCR1A)) / 1000));
Serial.println(strbuf);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
tone(buzzerPin, frequency);
}
else {
noTone(buzzerPin);
}
if (Serial.available()) {
int newFrequency = Serial.parseInt();
if (newFrequency > 0&& newFrequency > 31) {
frequency = newFrequency;
}
while (Serial.available()) {
Serial.read();
}
}
}