为什么用串口调试助手接收到的数据与程序的不匹配
我用的AVR ATmega128做与PC机通信,结果运行后串口调试助手上显示的数和程序上写的不一样,哪里的问题呢?程序如下:
#include<avr/io.h>
#include<avr/interrupt.h>
#define F_CPU8000000
#define BAUD 38400
int main(void)
{
UBRR0H = ((F_CPU/BAUD/16-1)>>8);
UBRR0L = (F_CPU/BAUD/16-1);
UCSR0B = (1<<RXEN)|(1<<TXEN);
UCSR0C = (1<<USBS)|(3<<UCSZ0);
sei();
while(!(UCSR0A & (1<<UDRE)));
UDR0=0x55;
while(1);
}
出口调试助手设置的都一样,16进制下,发送0x55,结果显示收到B5,发送0x10,结果收到30,这是怎么回事? 波特率对吗,128有没有分频一说,代码就不看了,头大 看串口助手上的参数和单片机是否一致,波特率,数据位,校验位,停止位 老婆爱吃虾 发表于 2012-9-23 20:22 static/image/common/back.gif
看串口助手上的参数和单片机是否一致,波特率,数据位,校验位,停止位
这些都一致,而且我特意换了一下数据,结果还那样,我换了一台电脑,结果还那样。。。很无奈 加个延时再发送,而且可以搞个循环发送
页:
[1]