久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: avr單片機USART程序詳解 [打印本頁]

作者: aabbcc    時間: 2014-11-11 19:09
標題: avr單片機USART程序詳解
USART 可以用中斷和輪詢,也可以用緩沖區做一個上層接口

*****************************************************************
//CPU:mega32
//編譯器:iar
//USART一般編程方式
#include <ioavr.h>
void usart_init(void);
void put_char(char data);
void put_s(char *p);
char get_char( void );
char *get_s(char *p);
#define Fosc 8000000
#define Baud 9600
char c = '\n';
char str[9];
int main(void)
{
usart_init();
        put_s("acva");
      
while(1);
          put_char( get_char() );
}
void usart_init(void)
{
        UCSRB = (1<<RXEN)|(1<<TXEN);//接收中斷允許,接收允許,發送允許

UCSRC = 0X86;  //選擇UCSRC,異步模式,無校驗,1位停止位,8位數據位
UBRRH = (Fosc/16/Baud - 1)>>8; //選擇UBRRH,設置波特率
UBRRL = (unsigned char)(Fosc/16/Baud - 1);
}
/*
#pragma vector=USART_RXC_vect
__interrupt void receive(void)
{
c = UDR;
put_char('[');
put_char(c);
put_char(']');
}
*/
char get_char( void )
{
    while ( !(UCSRA & (1<<RXC)) );
    return UDR;
}
void put_char(char data)
{
while( !(UCSRA & (1<<UDRE)) );//查詢發送寄存器是否空
UDR = data;//將要發送的數據送入發送寄存器
}


//發送字符串
void put_s(char *p)
{
    for(;*p!='\0';p++)    //如果不是結束符,就發送
    put_char(*p);
}

//接收字符轉
char *get_s(char *p)
{
    char *p2 = p;
    while(1)
    {
      *p = get_char();
      put_char(*p);//回顯
      if(*p == 0X0D)
      {
        *p = '\0';
        break;
      }
      p++;
    }
    return p2;
}

******************************************************************






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩一区二区三区在线观看 | 一级在线 | 毛片高清 | 日韩欧美在线视频 | 免费一级片 | 久久久九九 | 在线观看国产www | 国产日韩欧美 | 激情一区二区三区 | 久久久久精 | 久久91 | 激情欧美一区二区三区中文字幕 | 亚洲天堂男人的天堂 | 激情毛片 | 久久精品16 | 亚洲国产成人精品久久久国产成人一区 | 国产一区二区三区久久 | 91欧美激情一区二区三区成人 | 亚洲国产精品成人综合久久久 | 伊人网综合在线观看 | 青青久久av北条麻妃海外网 | 久久亚洲欧美日韩精品专区 | 久久国产精品免费视频 | 亚洲一区二区av | 99re超碰| 日本精品视频 | 精品久久久久一区二区国产 | 91精品国产91久久久久久密臀 | 一级欧美日韩 | 久久午夜国产精品www忘忧草 | 欧美精品一二区 | 久久在线 | 国产区精品 | 网页av| 国产精品国产成人国产三级 | 国产第一页在线观看 | 欧美日韩一区二区三区视频 | 九九99久久| 精品欧美一区二区精品久久 | 久久人人网 | 亚洲精品99999|