[AVR单片机] 串口程序,为什么发送00总是显示80呀?求指导

[复制链接]
3477|8
 楼主| wh13651 发表于 2015-4-3 15:25 | 显示全部楼层 |阅读模式
oid usrt_port_init(void)
{
  DDRD|=(1<<PD1);
  PORTD|=(1<<PD0);
}

void usrt_init(void)                     //串口初始化函数
{
usrt_port_init();
//UCSRB=0X00;
UCSRA|=(1<<U2X);                           //两倍速
UCSRC|=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);  //选择UCSRC寄存器 字符长度8 无奇偶模式 1位停止位
UBRR=143  ;                                //12M晶振9600波特率
UCSRB|=(1<<RXEN)|(1<<TXEN)  ;               //发送接收使能

}

void usrt_putchar(uchar date)              //串口向PC发送单个字符函数
{
  while(!(UCSRA&(1<<UDRE)));
  UDR=date;
}

void usrt_putstring(uchar *s)               //串口向PC发送字符串
{
  while(*s)
  {
    usrt_putchar(*s);
        s++;
   }
   usrt_putchar(0x0a);
   usrt_putchar(0x0d);
}

uchar usrt_getchar(void)             //PC向串口发送字符
{
  while(!(UCSRA&(1<<RXC)));
   return UDR;

}
 楼主| wh13651 发表于 2015-4-3 15:26 | 显示全部楼层
另外为什么发送字符也是显示十六进制码?
huangxz 发表于 2015-4-3 15:29 | 显示全部楼层
本帖最后由 huangxz 于 2015-4-3 15:32 编辑

波特率设置不对吧.



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wh13651 发表于 2015-4-3 15:58 | 显示全部楼层
huangxz 发表于 2015-4-3 15:29
波特率设置不对吧.

芯片资料上就是这样啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wh13651 发表于 2015-4-3 16:13 | 显示全部楼层
huangxz 发表于 2015-4-3 15:29
波特率设置不对吧.

解决了,就是你说的这个原因,前面这个公式不太懂,能给解释一下吗?
chao1717 发表于 2015-4-3 17:28 | 显示全部楼层
你是用的串口调试助手吗
huangxz 发表于 2015-4-3 23:06 | 显示全部楼层
wh13651 发表于 2015-4-3 16:13
解决了,就是你说的这个原因,前面这个公式不太懂,能给解释一下吗?

数据手册上面有的,写的很清楚的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wh13651 发表于 2015-4-8 10:04 | 显示全部楼层
chao1717 发表于 2015-4-3 17:28
你是用的串口调试助手吗

是的
 楼主| wh13651 发表于 2015-4-8 10:05 | 显示全部楼层
huangxz 发表于 2015-4-3 23:06
数据手册上面有的,写的很清楚的。

恩,谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

42

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部