打印
[AVR单片机]

求高手帮忙看看!

[复制链接]
1062|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chrisbo|  楼主 | 2010-6-7 14:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自学AVR编了个串口调试程序不知道是哪里有问题。。请教各位高手帮忙指点指点,我的MCU是ATmega128,编程环境是AVR GCC,用的是JTAG仿真器,程序如下:  

#include <avr/io.h>  
#include "stdio.h"  
#define uchar unsigned char        
#define uint  unsigned int        

//串口0初始化  
void usart0_init(void)   
{  
UCSR0B = 0x00;                //禁止发送和接收  
UCSR0A = 0x00;                       
UCSR0C = 0x06;               //0000 0110,UCSZ01=1,UCSZ00=1;8位字符,1位停止位   
UBRR0L=0x44;     
UBRR0H=0x00;                //设置波特率寄存器  
UCSR0B = 0x18;             //允许发送和接收  
}  
//发送一个字符  
void usart0_char_send(uchar i)  
{  
while(!(UCSR0A&(1<<UDRE0)));//发送缓冲器为空  
UDR0=i;  
}  
//发送一个字符串  
void usart0_str_send(char *s)   
{  
while(*s)  
{  
   usart0_char_send(*s);   
   s++;  
}  
}  
//接收一个字符  
uchar usart0_char_receive(void)   
{  
while(!(UCSR0A&(1<<RXC0)));//接收数据完毕  
return UDR0;  
}  
//主函数  
void main(void)  
{  
   
  uchar usart0_temp;   
  usart0_init();  
   
  while(1)   
{  
  usart0_temp=usart0_char_receive();   //等待接收数据  
  usart0_str_send("data is:");     //发送数据  
  usart0_char_send(usart0_temp);   
   
}   
}  

接上串口线后用串口调试助手测试了下,调试助手界面里显示出来的是16进制乱码而且也没有我程序里想发送的“data is”字符串。。。检查了好久都没发现问题出在哪里,恳请哪位高手路过的时候帮忙指点一下,感激不尽!

相关帖子

沙发
chrisbo|  楼主 | 2010-6-7 15:48 | 只看该作者
依旧没发现哪里有问题又出来了新问题。。。串口调试助手显示PC机一直在接收数据全是00 00 00 00 00 00  00 00谁来教教我啊:L

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

55

帖子

0

粉丝