目前共有1篇帖子。
【串口通信】AVR單片機串口發送到PC
1樓 巨大八爪鱼 2013-10-13 01:56
#include <iom16v.h>
#include <macros.h>

#define FOSC 8000000
#define BAUD 9600

void delay(unsigned int n)
{
    unsigned int i;
    while (n--)
        for (i=0;i<1140;i++);
}

void UART_Init(void)
{
    UCSRB=0x00; //禁止發送和接收
    UCSRA=0x02; //倍速非同步模式USX=1
    UCSRC=0x06;

    UBRRL=(FOSC/8/(BAUD+1))%256;
    UBRRH=(FOSC/8/(BAUD+1))/256;

    UCSRB=0xd8; //允許發送和接收,接收和發送結束中斷使能
}

void UART_Send(unsigned char Data)
{
    while (!(UCSRA&BIT(UDRE))); //等待數據暫存器為空
    UDR=Data;
}

void UART_SendString(char* pStr)
{
    while (*pStr!='\0')
    {
        UART_Send(*pStr);
        pStr++;
    }
}

void main(void)
{
    DDRD=0xf3; //兩個外中斷口設為輸入
    PORTD=0xff;
    UART_Init();
    
    while (1)
    {
        UART_SendString("This is a string sent by ATMega16.\n");
        delay(1000);
    }
}

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。