我试图在C中编写一个程序,该程序从用户那里获取字符输入,将其保存到变量然后将其传输到串行端口。
我使用的是Romeo Board,Atmega328p和Arduino Serial Monitor。我知道电路板/串行监视器工作,因为我能够传输。我无法获得输入/接收方面的工作。
这是我的代码:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
int main(void){
initUART(9600);
while(1){
unsigned char beta = receiveByte();
transmitByte(beta);
_delay_ms(1500);
}
}
void initUART(unsigned int baud) {
unsigned int ubrr = F_CPU/16/baud-1; //Normal mode UBRR formula
UBRR0H = (unsigned char) (ubrr >> 8);
UBRR0L = (unsigned char) ubrr;
UCSR0B = (1 << RXEN0) | (1 << TXEN0);
UCSR0C = (1 <<UCSZ00) | (1 <<UCSZ01);
}
unsigned char receiveByte (void) {
while ( !(UCSR0A & (1 << RXC0)) );
return UDR0;
}
我知道Serial.read()但不能使用它,因为它不在我实验室的范围内(实际上比这更复杂)
任何提示或线索将不胜感激。