作者共发了1篇帖子。 内容转换:不转换▼
 
点击 回复
496 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)
 

本帖信息

点击数:496 回复数:0
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2013-10-13 01:56
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。