0
對於一個簡單的項目,我想使用連接到HC-06藍牙模塊的ATTiny85,以便它可以與我的Android手機通話。ATTiny85與藍牙模塊的串行通信
我爲我的Arduino Uno編寫了代碼,它按預期工作。當我改變ATTiny85上使用的代碼時,我得到一個錯誤,說'Serial' was not declared in this scope
,並假定ATTiny不支持硬件串行。
我需要在接收時讀取一個字符串,並在未接收時將其休眠。我去使用SoftwareSerial並且無法獲取字符串,只是第一個字符。
我以某種方式接近它,例如在循環內定義char string[10];
全局和string[i] = mySerial.read(); i++;
,但它一直不工作。無論是睡眠,還是我的工作來閱讀數據,我都無法使它工作。
有人可以提供一種方法讓ATTiny85進入睡眠狀態,喚醒以通過串行接收字符串並通過串行睡眠直到下一個數據,請問?
睡覺我使用
void sleep() {
GIMSK |= _BV(PCIE); // Enable Pin Change Interrupts
PCMSK |= _BV(PCINT3); // Use PB3 as interrupt pin
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable(); // Sets the Sleep Enable bit in the MCUCR Register (SE BIT)
sei(); // Enable interrupts
sleep_cpu(); // sleep
// woke up
cli(); // Disable interrupts
PCMSK &= ~_BV(PCINT3); // Turn off PB3 as interrupt pin
sleep_disable(); // Clear Sleep Enable bit
sei(); // Enable interrupts
}
ISR(PCINT3_vect) {
}
而且我的循環是一樣的東西
char inputString[10];
int i = 0;
void loop() {
sleep();
if (serial.available() > 0) {
char inputChar = serial.read();
if (inputChar == '2') { //Char to break
//Do something and reset i
} else {
inputString[i] = inputChar;
}
i++;
}
}
感謝所有。