⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.c

📁 avr mega128的源代码串口
💻 C
字号:
#include <iom128.h>
#include "global.h"
#include "command.h"
#include "rw910.h"

#define OSC   16000000
#define BAUD  19200

#pragma vector=USART0_RXC_vect
SIGNAL(USART0_RXC_vect)
{
  unsigned char com;

  com=UDR0;
  uardata.uart[0] = com;  
} 
void uart0_init(void)
{
  unsigned int baud;
  
  baud = OSC/16/BAUD-1;  
  UBRR0H = (unsigned char)(baud>>8);  
  UBRR0L = (unsigned char)baud;  //set baudrate
  UCSR0B = (1<<7)|(1<<4)|(1<<3);  //发送,接收使能,使用接收中断, 
  UCSR0C = (1<<1)|(1<<2);  //0x06 8位数据,1位停止位,无校验   
}
void uart0_putChar(unsigned char out)
{
  UCSR0A |= (1<<6);  //发送结束清零
  UDR0 = out;
  while( (UCSR0A&(1<<6))==0 ){;}
  UCSR0A |= (1<<6);  //发送结束清零
}
void uart0_putArray(unsigned char *p,unsigned char len)
{
  unsigned char i;
  for(i=0;i<len;i++)
  {
    uart0_putChar(*p);
    p ++;
  }
}
void uartfun(void)
{  
  unsigned char a[2] = {0};
  switch(uardata.uart[0])
  {
  case 1:
    select_cmd(0,0,1,0,0,a,0);
    uart0_putChar( uardata.uart[0]);
    uardata.uart[0]=0;
    break;
  case 2:
    query_cmd(0,0,0,0,0,0,5);
    uart0_putChar( uardata.uart[0]);
    uardata.uart[0]=0;
    break;
  case 3:
    queryAdjust_cmd(0,3);
    uart0_putChar( uardata.uart[0]);
    uardata.uart[0]=0;
    break;
  case 4:
    queryRep_cmd(1);
    uart0_putChar( uardata.uart[0]);
    uardata.uart[0]=0;
    break;
    
  case 10:   
    configRw910ControlRigister(TXRX_MOD_REG,0x00); 
    uart0_putChar( uardata.uart[0]);
    uardata.uart[0]=0;
    break;  //rf all on
    
  case 11:    
    configRw910ControlRigister(TXRX_MOD_REG,0x01);
    uart0_putChar( uardata.uart[0]);
    uardata.uart[0]=0;
    break;  //rf tx on,rx off
    
  case 12: 
    configRw910ControlRigister(TXRX_MOD_REG,0x02);
    uart0_putChar( uardata.uart[0]);
    uardata.uart[0]=0;
    break;  //rf tx off,rx on
    
  case 13:    
    configRw910ControlRigister(TXRX_MOD_REG,0x03);
    uart0_putChar( uardata.uart[0]);
    uardata.uart[0]=0;
    break;  //rf all off
    
  default:
    break;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -