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

📄 usart.c

📁 ATMEGA128 UART 的IAR应用
💻 C
字号:
#include <iom128.h>
#include "MyType.h"
#include "USART.h"

/******************************************************
 *函数名 :InitUSART
 *功能   :串口初始化,使用USART1
 *参数   :void
 *返回值 :void
 *****************************************************/
void InitUSART(void)
{

    UBRR1H  = 0;    //SCK 8000000,baud 9600
    UBRR1L  = 51;
    UCSR1A &= 0x00;
    UCSR1B  = 0x18; // Disable USART Rx Complete Interrupt
                    // Enable the receiver
                    // Enable the transmitter
    UCSR1C = 0x06;  //8 Bits, 1 stop, no parity                      */
}

/******************************************************
 *函数名 :PutCh
 *功能   :发送一个数据
 *参数   :INT8U data  data为要发送的数据
 *返回值 :void
 *****************************************************/

void PutCh(INT8U data){

    while(!(UCSR1A & 0X20));
    UDR1=data;
}

/******************************************************
 *函数名 :GetCh
 *功能   :从串口读取一个字节数据
 *参数   :void
 *返回值 :如果串口有数据则返回该数据,没有数据则返回
 *         0xff,此函数可以模拟键盘使用
 *****************************************************/
INT8U GetCh(void)
{
    if(UCSR1A & 0X80)
    {

        return UDR1;
    }
    else
    {
        return 0xff;
    }
  /*while(!(UCSR1A & 0X80));
  return UDR1;*/
}
/*
 *读取一个字符
 */
/*
#pragma vector = 0x78
__interrupt void Get(void){
ch = UDR1;
}*/

/******************************************************
 *函数名 :PutStr
 *功能   :发送以'\0'结尾的字符串
 *参数   :INT8U *p,p为要发送字符串的首地址
 *返回值 :void
 *****************************************************/
void PutStr(INT8U *p)
{

    while(*p != 0)
    {
        while(!(UCSR1A & 0x20));
        UDR1 = *p++;
    }

}

⌨️ 快捷键说明

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