こんにちは、私はこれが初めてで、助けが必要です。'null' を与える代わりに、realterm に 'S' を表示するだけだと思われます。問題は何でしょうか?それはレジスターでしょうか?またはコード自体?
#include <avr/io.h>
#include <util/delay.h>
void UART_Init(unsigned int ubrr)
{
UBRRH=(unsigned int)(ubrr>>8);
UBRRL=(unsigned int)ubrr;
UCSRA=0x00;
UCSRB=(1<<TXEN)|(1<<RXEN);
UCSRC=(0<<USBS)|(1<<UCSZ0)|(1<<UCSZ1);
}
void UART_Tx(unsigned char chr)
{
while (bit_is_clear(UCSRA,UDRE)){}
UDR=chr;
}
int main(void)
{
UART_Init(95);
DDRD|=0B11111111;
PORTD|=0B11111111;
while(1){
_delay_ms(10);
UART_Tx('S');
}
}
システムは 14745600 Hz の xtal で実行されています。ホストの速度は 9600 ボーです。すべての設定は 8N1 である必要があります。