📄 uart.c
字号:
/****************************************Copyright (c)***************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info--------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**-------------------------------------------------------------------------------------------------------
** Created by: Chen Mingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**-------------------------------------------------------------------------------------------------------
** Modified by: Li Baihua
** Modified date: 2008-04-02
** Version: 1.1
** Descriptions: 串口0通信-查询方式实验
**
*********************************************************************************************************/
#include "config.h"
#include "stdio.h"
/*********************************************************************************************************
** Function name: UART10GetByte
** Descriptions: 从串口接收1字节数据,使用查询方式接收
** input parameters: 无
** output parameters: 无
** Returned value: uiRcvData 接收到的数据
*********************************************************************************************************/
uint8 UART1GetByte (void)
{
uint8 uiRcvData;
while ((U1LSR & 0x01) == 0); /* 等待接收标志置位 */
uiRcvData = (uint8)U1RBR; /* 读取数据 */
return (uiRcvData);
}
/*********************************************************************************************************
** Function name: UART1GetStr
** Descriptions: 串口接收字符串
** input parameters: uiStr 指向接收数据数组的指针
** uiNum 接收数据的个数
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
uint8 UART1RcvAck(char *uiStr, uint32 uiNum)
{
char temp[12];
uint8 i=0;
for (; uiNum > 0; uiNum--){
temp[i++] = UART1GetByte ();
}
uiStr = temp;
return *uiStr;
}
/*********************************************************************************************************
** Function name: UART1SendByte
** Descriptions: 向串口发送子节数据,并等待数据发送完成,使用查询方式
** input parameters: uiDat 要发送的数据
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void UART1SendByte (char uiDat)
{
U1THR = uiDat; /* 写入数据 */
while ((U1LSR & 0x40) == 0); /* 等待数据发送完毕 */
}
/*********************************************************************************************************
** Function name: UART1SendStr
** Descriptions: 向串口发送字符串
** input parameters: uiStr 要发送的字符串指针
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void UART1SendStr(char const *uiStr)
{
while (1){
if (*uiStr == '\0')break; /* 遇到结束符,退出 */
UART1SendByte (*uiStr++);
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -