目前共有1篇帖子。 內容轉換:不轉換▼
 
點擊 回復
483 0
【串口通信】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);
    }
}

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:483 回複數:0
評論數: ?
作者: 巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2013-10-13 01:56
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。