📄 uart.c
字号:
//=============================================================
// 文件名称: 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -