woai0201 发表于 2013-3-18 14:36:30

简单串口通信 MEG64

源代码如下
#include<iom64v.h>
#include<macros.h>
#define uchar8 unsigned char
#define uchar16 unsigned short
/*串口1初始化*/
void USART1_inital(void)
{
UCSR1B = 0x00;   //disable while setting baud rate
UCSR1A = 0x00;   //U2X = 0,不加倍数率
UBRR1L = 0x19; //set baud rate lo
UBRR1H = 0x00; //set baud rate hi波特率设定
UCSR1C = 0x06; //帧结构设定 8数据 无校验 1停止
UCSR1B = 0x98; //发送使能
//UCSR1A = 0X60;
}
void USART_Transmit(uchar8 data)
{
while(!(UCSR1A&(1<<UDRE1)));
UDR1=data;
}
void delay_ms(uchar16 data)
{
uchar16 i;
while(data--)
{
  for(i=1;i<50000;i++);
}
}
int main(void)
{
CLI();
USART1_inital();
DDRD|=0X08;
SEI();
while(1)
{
  USART_Transmit(0x66);
  delay_ms(10);
  
  }
}
但是我在电脑上收不到发送的0x66.4M晶振 9600波特率

枯恋凡尘 发表于 2013-3-18 14:52:51

1)首先确认电脑串口调试助手有没有没收到数据
2)确认波特率是否一致
3)确认熔丝位配置是否正确

woai0201 发表于 2013-3-18 15:02:55

枯恋凡尘 发表于 2013-3-18 14:52 static/image/common/back.gif
1)首先确认电脑串口调试助手有没有没收到数据
2)确认波特率是否一致
3)确认熔丝位配置是否正确


谢谢,问题解决了,是熔丝位搞错了。
页: [1]
查看完整版本: 简单串口通信 MEG64