找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1980|回复: 4
打印 上一主题 下一主题
收起左侧

最基本的AVR串口通讯调试有问题,请大神赐教

[复制链接]
跳转到指定楼层
楼主
使用的是ATMega644PA,晶振12Mhz,熔丝位设置为如下图
在串口通讯里显示的数据有问题,不知道为什么,请大家帮我看看

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

//常量声明
#define BAUD 9600
#define FOSC  12000000
//全局变量声明
unsigned char Transmit

//函数声明
void Port_Init(void);   //端口初始化配置
void Usart_Init(void);  //USART寄存器设置
void Usart_PutChar(unsigned char cTXData);  //字节发送函数


int main(void)
{
    Port_Init();
    Usart_Init();

    Transmit = 0x12;

    Usart_PutChar(Transmit);

    sei();          //使能全局中断

    while(1)
    {


    }
}

//端口状态初始化设置函数
void Port_Init()
{
    PORTD = 0X00;          //USART的发送接收端口分别为PD0和PD1
    DDRD |= (1 << PD1);   //PD0为接收端口,置为输入口;PD1为发送端口,置为输出口
}

//USART寄存器配置函数
void Usart_Init()
{

    UCSR0B = 0x00;//先关闭串口,因为要设置波特率
      UCSR0A = 0X00;
      unsigned int UBRR;
    UBRR = FOSC/16/BAUD-1;
    UBRR0H = (uint8_t)(UBRR>>8);
    UBRR0L = (uint8_t)(UBRR);  //设置波特率

    UCSR0B |= (1 << TXEN0);    //发送使能
    UCSR0C |= (1 << UCSZ01) | (1 << UCSZ00);  //异步,数据格式8,N,1


}


//字节发送函数
void Usart_PutChar(unsigned char cTXData)
{
    while( !(UCSR0A & (1 << UDRE0)) );  //只有数据寄存器为空时才能发送数据
    UDR0 = cTXData;
}



QQ截图20181102170726.png (29.6 KB, 下载次数: 33)

QQ截图20181102170726.png

QQ截图20181102170735.png (55.41 KB, 下载次数: 35)

QQ截图20181102170735.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:154686 发表于 2018-11-5 08:34 | 只看该作者
不知道是波特率部分还是晶振部分的问题?
还有我的USART部分的寄存器按照了datasheet编写,应该没有问题
回复

使用道具 举报

板凳
ID:154686 发表于 2018-11-5 09:47 | 只看该作者
以上程序在串口助手1200的波特率设置下可以运行,不知道为什么,是我的熔丝位设置有问题吗
回复

使用道具 举报

地板
ID:212797 发表于 2018-11-5 10:10 | 只看该作者
没用过ATMega644PA,不过推荐楼主到Atmel的START上去看看,START实际是Atmel的一个在线生成驱动库,基本包含了Atmel的所有芯片,只需要选择相应的芯片,简单配置一下,就可以生成相应的驱动代码,网址:http://start.atmel.com/
回复

使用道具 举报

5#
ID:154686 发表于 2018-11-7 11:24 | 只看该作者
xbook_ben 发表于 2018-11-5 10:10
没用过ATMega644PA,不过推荐楼主到Atmel的START上去看看,START实际是Atmel的一个在线生成驱动库,基本包 ...

多谢回复,解决了问题,是熔丝位设置的问题,现在可以正常收发了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表