找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2641|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

最基本的AVR串口通訊調(diào)試有問題,請(qǐng)大神賜教

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
使用的是ATMega644PA,晶振12Mhz,熔絲位設(shè)置為如下圖
在串口通訊里顯示的數(shù)據(jù)有問題,不知道為什么,請(qǐng)大家?guī)臀铱纯?br />
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

//常量聲明
#define BAUD 9600
#define FOSC  12000000
//全局變量聲明
unsigned char Transmit

//函數(shù)聲明
void Port_Init(void);   //端口初始化配置
void Usart_Init(void);  //USART寄存器設(shè)置
void Usart_PutChar(unsigned char cTXData);  //字節(jié)發(fā)送函數(shù)


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

    Transmit = 0x12;

    Usart_PutChar(Transmit);

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

    while(1)
    {


    }
}

//端口狀態(tài)初始化設(shè)置函數(shù)
void Port_Init()
{
    PORTD = 0X00;          //USART的發(fā)送接收端口分別為PD0和PD1
    DDRD |= (1 << PD1);   //PD0為接收端口,置為輸入口;PD1為發(fā)送端口,置為輸出口
}

//USART寄存器配置函數(shù)
void Usart_Init()
{

    UCSR0B = 0x00;//先關(guān)閉串口,因?yàn)橐O(shè)置波特率
      UCSR0A = 0X00;
      unsigned int UBRR;
    UBRR = FOSC/16/BAUD-1;
    UBRR0H = (uint8_t)(UBRR>>8);
    UBRR0L = (uint8_t)(UBRR);  //設(shè)置波特率

    UCSR0B |= (1 << TXEN0);    //發(fā)送使能
    UCSR0C |= (1 << UCSZ01) | (1 << UCSZ00);  //異步,數(shù)據(jù)格式8,N,1


}


//字節(jié)發(fā)送函數(shù)
void Usart_PutChar(unsigned char cTXData)
{
    while( !(UCSR0A & (1 << UDRE0)) );  //只有數(shù)據(jù)寄存器為空時(shí)才能發(fā)送數(shù)據(jù)
    UDR0 = cTXData;
}



QQ截圖20181102170726.png (29.6 KB, 下載次數(shù): 54)

QQ截圖20181102170726.png

QQ截圖20181102170735.png (55.41 KB, 下載次數(shù): 61)

QQ截圖20181102170735.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:154686 發(fā)表于 2018-11-5 08:34 | 只看該作者
不知道是波特率部分還是晶振部分的問題?
還有我的USART部分的寄存器按照了datasheet編寫,應(yīng)該沒有問題
回復(fù)

使用道具 舉報(bào)

板凳
ID:154686 發(fā)表于 2018-11-5 09:47 | 只看該作者
以上程序在串口助手1200的波特率設(shè)置下可以運(yùn)行,不知道為什么,是我的熔絲位設(shè)置有問題嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:212797 發(fā)表于 2018-11-5 10:10 | 只看該作者
沒用過ATMega644PA,不過推薦樓主到Atmel的START上去看看,START實(shí)際是Atmel的一個(gè)在線生成驅(qū)動(dòng)庫,基本包含了Atmel的所有芯片,只需要選擇相應(yīng)的芯片,簡單配置一下,就可以生成相應(yīng)的驅(qū)動(dòng)代碼,網(wǎng)址:http://start.atmel.com/。
回復(fù)

使用道具 舉報(bào)

5#
ID:154686 發(fā)表于 2018-11-7 11:24 | 只看該作者
xbook_ben 發(fā)表于 2018-11-5 10:10
沒用過ATMega644PA,不過推薦樓主到Atmel的START上去看看,START實(shí)際是Atmel的一個(gè)在線生成驅(qū)動(dòng)庫,基本包 ...

多謝回復(fù),解決了問題,是熔絲位設(shè)置的問題,現(xiàn)在可以正常收發(fā)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表