首页 > 解决方案 > 我正在尝试与 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); 
}

标签: csimulatorserial-communicationatmelstudio

解决方案


推荐阅读