• AVR ATMEGA8 串口USART


    avr串口配置很简单,配置就几个寄存器就可以进收发;

    但有几点要搞明白的是:

    1、串口一但被配置成功IO功能自动被占用,这点与LPC或STM8/32不同(需要寄存配置);

    2、没有专门的串口开起或闭关功位(整个串口);

    3、读写控制寄存器C需要把URSEL位写成1,而读写UBRRH寄存器时须要URSEL写成0;

       1: //晶振频率  
       2: #define F_CPU 6000000UL  
       3: //波特率  
       4: #define BAUD 9600  
       5:  
       6: //M8串口1初始化
       7: void UsartInit(void)
       8: {
       9:     unsigned int tmp;
      10:     FifoInit(&RxFifo, sizeof(RxFifo.data));
      11:     FifoInit(&TxFifo, sizeof(TxFifo.data));
      12:     tmp= F_CPU/BAUD/16-1;
      13:     SetBit(SREG, 7);
      14:     UCSRB = 0;
      15:     UCSRC = 0;
      16:     UBRRH=(unsigned char)(tmp>>8);
      17:     UBRRL=(unsigned char)tmp;
      18:     UCSRB |= (1<<RXEN)|(1<<TXEN);  //允许发送和接收
      19:     UCSRC |= (1 << URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //8位数据位+1位停止位
      20: }
  • 相关阅读:
    Codevs 4189 字典(字典树Trie)
    Codevs 1697 ⑨要写信
    Codevs 1904 最小路径覆盖问题
    特殊性
    继承
    分组选择符
    伪类选择符
    包含(后代)选择器
    子选择器
    类和ID选择器的区别
  • 原文地址:https://www.cnblogs.com/worldsing/p/3225255.html
Copyright © 2020-2023  润新知