uart.c
来自「采用32位嵌入式芯片SPCE3200(凌阳)设计的开发板,具有多媒体功能。其中包」· C语言 代码 · 共 66 行
C
66 行
//=============================================================
// 文件名称: UART.c
// 功能描述: UART发送和接收子程序
//维护记录:
// 2007.01.16 V1.0 by wangtao <wangtao@sunnorth.com.cn>
//=============================================================
#include "SPCE3200_Register.h"
#include "SPCE3200_Constant.h"
//=============================================================
// 语法格式: void UART_Initial(int BaudRate);
// 实现功能: 初始化SPCE3200的UART模块
// 参数: BaudRate: 波特率代码
// 返回值: 无
//=============================================================
void UART_Initial(int BaudRate)
{
*P_UART_CLK_CONF = 0x0000;
*P_UART_CLK_CONF = C_UART_CLK_EN | C_UART_RST_DIS; // UART 时钟配置
*P_UART_BAUDRATE_SETUP = BaudRate; // 传输波特率设置
*P_UART_MODE_CTRL = C_UART_EVEN_PARITY // 偶校验
| C_UART_STOP_1BIT // 1位停止位
| C_UART_DATA_8BIT // 数据长度为8bit
| C_UART_CTRL_EN // 使能UART
;
}
//=============================================================
// 语法格式: void UART_SendChar(char cData);
// 实现功能: 通过UART的数据发送端口,串行发送一个字符数据
// 参数: cData: 待发送的字符数据
// 返回值: 无
//=============================================================
void UART_SendChar(char cData)
{
while(*P_UART_TXRX_STATUS & C_UART_TXFIFO_FULL); // 发送FIFO满则等待?
*P_UART_TXRX_DATA = cData;
while(*P_UART_TXRX_STATUS & C_UART_BUSY_FLAG); // 等待发送完成
}
//=============================================================
// 语法格式: char UART_GetChar();
// 实现功能: 通过UART的数据接收端口,串行接收一个字符数据
// 参数: 无
// 返回值: 接收到的字符数据
//=============================================================
char UART_GetChar()
{
char cData = 0;
int i=0;
while(*P_UART_TXRX_STATUS & C_UART_RXFIFO_EMPTY) // 接收FIFO为空则等待
{
i++;
if(i==100000)break;
}
if(i==100000)
cData = 0xFF;
else
cData = *P_UART_TXRX_DATA; // 取一个数据
return cData;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?