#define fosc 8000000
#define baud 9600
void usart_init(void)
{
UCSR0B = 0x00; //发送接收都不使能 开始时候不设置
UCSR0A = 0x00; //不使用倍速发送 UX2为1时设置加倍
UCSR0C = 0x06; // 异步 禁止校验位 1位停止位 8位数据帧 TX上升沿 RX下降沿
UBRR0H = (fosc/16/baud - 1) / 256;
UBRR0L = (fosc/16/baud - 1) % 256;
UCSR0B = 0x98; //接收结束中断使能 接收使能 发送使能
// UCSR0B = 0x18; //接收使能 发送使能
}
void putchar(unsigned char c)
{
while(!(UCSR0A&(1 << UDRE0)));
UDR0 = c;
}
void main()
{
unsigned char temp = 9;
while(1)
{
putchar(temp);
}
}
软件用的是ICC AVR
芯片是ATmega88
将代码烧进去之后连接串口工具。运行后下面的80是点击十六进制显示的结果,上面是未点击。
问题:为什么不是显示的9?