📄 usart.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 + -