<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)atmega16串口中斷接收和發(fā)送程序

          AVR單片機(jī)atmega16串口中斷接收和發(fā)送程序

          作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò) 收藏
          // Target : M16

          // Crystal: 8.0000Mhz
          //AVR單片機(jī)atmega16串口中斷接收和發(fā)送程序。接收到字符后再發(fā)送出去
          #include
          #include
          unsigned char com_in_buf[1];
          void port_init(void)
          {
          PORTA = 0xFF;
          DDRA = 0xFF;
          PORTB = 0x00;
          DDRB = 0x00;
          PORTC = 0x00;
          DDRC = 0x00;
          PORTD = 0x00;
          DDRD = 0x00;
          }

          本文引用地址:http://www.ex-cimer.com/article/201611/316518.htm

          //UART0 initialize
          // desired baud rate: 9600
          // actual: baud rate:9615 (0.2%)
          // char size: 8 bit
          // parity: Disabled
          void uart0_init(void)
          {
          UCSRB = 0x00; //disable while setting baud rate
          UCSRA = 0x00;
          UCSRC = BIT(URSEL) | 0x06;
          UBRRL = 0x33; //set baud rate lo
          UBRRH = 0x00; //set baud rate hi
          UCSRB = 0x98;
          }

          void send_data(unsigned char back)
          {
          while( !( UCSRA & (1< UDR=back;
          }

          #pragma interrupt_handler uart0_rx_isr:12
          void uart0_rx_isr(void)
          {
          //uart has received a character in UDR
          com_in_buf[0]=UDR;
          send_data(com_in_buf[0]);
          }

          //call this routine to initialize all peripherals
          void init_devices(void)
          {
          //stop errant interrupts until set up
          CLI(); //disable all interrupts
          port_init();
          uart0_init();

          MCUCR = 0x00;
          GICR = 0x00;
          TIMSK = 0x00; //timer interrupt sources
          SEI(); //re-enable interrupts
          //all peripherals are now initialized
          }

          void main(void)
          {
          char j;
          init_devices();
          while(1)
          {
          for(j=1;j<100;j++)
          ;
          }
          }



          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();