我在通过 USB 串行转换器将 ATmega128 串行端口连接到计算机时遇到问题。USB 串行转换器已通过验证,因为我已使用它将计算机连接到 CDMA 调制解调器。但是,当我尝试将它与 atmega128 连接时,我无法找出问题所在。我已经将它连接到串行 LCD (CLCD) 并且工作正常。即使在使用虚拟终端进行模拟时也没有问题。我想知道我是否错过了与串行端口相关的任何内容。我已经在硬件选项和虚拟终端中检查了波特率。这是代码。
#include<avr/io.h>
#include<util/delay.h>
char str1[]="AT\r\n";
char str2[]="AT+CMGF=1\r\n";
char str3[]="AT+CMGS=\"01068685673\"\r\n";
char str4[]="hello\x1A\r\n";
int i;
void TX_CHAR(char ch)
{
while(!(UCSR1A&0x20));
UDR1=ch;
}
int main()
{
UBRR1H=0; UBRR1L=103; UCSR1B=0x08;
UCSR1C=0b00000110;
while(1)
{
i=0; while(str1[i])TX_CHAR(str1[i++]);
_delay_ms(200);
i=0; while(str2[i])TX_CHAR(str2[i++]);
_delay_ms(200);
i=0; while(str3[i])TX_CHAR(str3[i++]);
_delay_ms(200);
i=0; while(str4[i])TX_CHAR(str4[i++]);
_delay_ms(3000);
}
}