Atmega32简单的串口通信

发布者:火星最新更新时间:2022-07-14 来源: csdn关键字:Atmega32  串口通信  寄存器 手机看文章 扫描二维码
随时随地手机看文章

最近因为做东西,又重新写了一下AVR,在这整理一下


串口通信是这个是比较常用的部分,Atmega32只有一个串口,USART


基本串口编程只需要写两部分,串口的初始化与串口数据接收


串口初始化:


设置波特率,波特率可以通过设置波特率发生寄存器UBRR来确定, UBRR为两字节16位的寄存器,可分为UBRRH和UBRRH,计算公式:


UBRRH= (F_CPU/BAUD/16 -1)/256   UBRRL =(F_CPU/BAUD/16 -1)%256


串口的使能,通过写USART控制和状态寄存器B-USARTB,接收使能、发送使能、接收中断使能(可根据需要进行使能)。


使能语句:UCSRB |=(1<

初始化函数:


    void USART_init(int BAUD)


    {


           UBRRH= (F_CPU/BAUD/16 -1)/256;


           UBRRL= (F_CPU/BAUD/16 -1)%256;


           UCSRB|= (1<

    }

发送单字节数据:


  voidsend_char(char data)


  {


    while(!(UCSRA & (1<

    UDR = data;


  }


发送字符串:


  void send_string(char *string)


  {


     for(;*string!='/0';string++)


    send_char(*string);


  }


发送二进制数字


  void send_bin(uint8_t num)


  {


    inti;


    for(i=7;i>=0;i--)


    send_char(((num>>i)&0x01)+48);


  }


接收字符数据


  unsigned char getchar(void)


  {


    while(!(UCSRA&(1<

    return UDR;


  }

关键字:Atmega32  串口通信  寄存器 引用地址:Atmega32简单的串口通信

上一篇:Atmega32最简单的按键程序
下一篇:Arduino IDE增加ATmega32开发选项遇到的问题

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved