c - 我正在尝试与 UART 通信以显示字母 A,但我的代码没有停止运行?
问题描述
我试图在 TERA TERM 模拟器上显示 A,但是当我在 ATMEL STUDIO 7 上运行我的代码时,代码不会停止运行。
这是我下面的代码,我在 atmel studio 7 上可用的模拟器工具上运行程序,我相信我正在正确配置 UART
#include <avr/io.h>
void configureUART(void);
void sendUART(unsigned char);
int main(void)
{
configureUART();
sendUART('A');
}
void sendUART(unsigned char transmitByte)
{
while ((UCSRA & (1 << UDRE))== 0);
// Data register is ready, transmit out the byte.
UDR = transmitByte;
}
void configureUART()
{
//Baud Rate Config 9600 => 0x4D
UBRRH = 0x00;
UBRRL = 0x4D;
//Need to use UCSRC Register w/ asynchronous op. and 1 stop bit w/ 8 data bits
UCSRC = (1 << URSEL) | (0 << USBS) | (1 << UCSZ0) | (1 << UCSZ0) ;
//Transmit and Receive
UCSRB = (1 << RXEN) | (1 << TXEN);
}