打印
[AVR单片机]

串口程序求救

[复制链接]
1721|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tree51|  楼主 | 2007-4-14 15:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大哥们帮我看一下程序
/*********************************************************************
   用ICC AVR 编译,使用外部晶震 
   芯    片:mega64  
   系统频率:7.3728MHz
   停 止 位:1
   波 特 率:115200
   数据长度:8
   串口初始化函数
*********************************************************************/
#include <iom64v.h>
void Uart_Init(void) 
      {
    UCSR0A = 0x02;        /*倍速                        */
    UCSR0B = 0x18;        /*允许接收和发送*/
    UCSR0C = 0x06;        /*8位数据                */
    UBRR0H = 0x00;
    UBRR0L = 7;        /*115200                */
      }

/*********************************************************************
                    发查询方式发送
*********************************************************************/

void Uart_Transmit(unsigned char i)
     {
      while (!(UCSR0A & (1<<UDRE0)));  /* 等待发送缓冲器为空*/    
      UDR0 = i;                        /* 将数据放入缓冲器,发送数据*/
     }

void main(void)
       {
    unsigned int k=1000;
    DDRE = 0x02;
    PORTE = 0xFF;
    Uart_Init();    
    while (1) 
             {                
              while(k--);
              Uart_Transmit(0x55);
         }
       }

相关帖子

沙发
chenlung| | 2007-4-14 17:21 | 只看该作者

re

 
    while (1) 
             {                
              while(k--);     
                             //这里再把k=1000;吧。
              Uart_Transmit(0x55);
         }
       }

先不管串口对不对。第一次完成后,k永远就是0了。

使用特权

评论回复
板凳
huchengxtu| | 2009-3-23 21:14 | 只看该作者

如果单独传一个字符就是对的

我让SBUF=0x21;
显示的是
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
不解的有两个问题
1.为什么A是0x21 而不是0X41 我所有的字符都要减去0X20,才是正确的
2.为什么传一个字符数组会出现上面的错误

使用特权

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

本版积分规则

12

主题

18

帖子

0

粉丝