UART串口初始化函数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/******************************************************************************* ************** 函数名:UART 串口接收 CPU 查寻语句(非函数体) 调 用:将下面内容放入主程序 参 数:无 返回值:无 结 果:循环查寻接收标志位 RI,如有收到数据则进入 if (RI == 1){} 备 注: /******************************************************************************* ***************/
//SBUF = UART_data; //将接收的数据发送回去(删除//即生效)
//while(TI == 0); //检查发送中断标志位
//TI = 0;
//令发送中断标志位为 0(软件清零)
}
/*******************************************************************************
返回值:无
结 果:将参数中的数据发送给 UART 串口,确认发送完成后退出
备 注:
/*******************************************************************************
***************/
void UART_T (unsigned char UART_data){ //定义串口发送数据变量
//while(TI == 0); //检查发送中断标志位
//TI = 0;
//令发送中断标志位为 0(软件清零)
}
/*******************************************************************************
***************/
备ห้องสมุดไป่ตู้注:过长的处理程序会影响后面数据的接收
/*******************************************************************************
***************/
void UART_R (void) interrupt 4 using 1{ //切换寄存器组到 1
EA = 1; //允许总中断(如不使用中断,可用//屏蔽) ES = 1; //允许 UART 串口的中断
TMOD = 0x20; SCON = 0x50;
//定时器 T/C1 工作方式 2 //串口工作方式 1,允许串口接收(SCON = 0x40 时禁止串口接收)
TH1 = 0xFD; //定时器初值高 8 位设置 TL1 = 0xFD; //定时器初值低 8 位设置 PCON = 0x80; //波特率倍频(屏蔽本句波特率为 9600) TR1 = 1; //定时器启动 } /******************************************************************************* ***************/
/******************************************************************************* ************** 函数名:UART 串口初始化函数 调 用:UART_init(); 参 数:无 返回值:无 结 果:启动 UART 串口接收中断,允许串口接收,启动 T/C1 产生波特率(占用) 备 注:振荡晶体为 11.0592MHz,PC 串口端设置 [ 19200,8,无,1,无 ] /******************************************************************************* ***************/ void UART_init (void){
while(*str != '\0'){
UART_T(*str); *str++; } *str = 0; } /******************************************************************************* ***************/
SBUF = UART_data; //将接收的数据发送回去
while(TI == 0); //检查发送中断标志位
TI = 0;
//令发送中断标志位为 0(软件清零)
}
/*******************************************************************************
UART 串口初始化函数.txt 每个女孩都曾是无泪的天使,当遇到自己喜欢的男孩时,便会流泪 一一,于是坠落凡间变为女孩,所以,男孩一定不要辜负女孩,因为女孩为你放弃整个天堂。 朋友,别哭,今夜我如昙花绽放在最美的瞬间凋谢,你的泪水也无法挽回我的枯萎 ~~~/**************************************************************************** ***************** 函数名:UART 串口初始化函数 调 用:UART_init(); 参 数:无 返回值:无 结 果:启动 UART 串口接收中断,允许串口接收,启动 T/C1 产生波特率(占用) 备 注:振荡晶体为 12MHz,PC 串口端设置 [ 4800,8,无,1,无 ] /******************************************************************************* ***************/ void UART_init (void){
unsigned char UART_data; //定义串口接收数据变量
if (RI == 1){
//接收中断标志位为 1 时
UART_data = SBUF; //接收数据 SBUF 为单片机的接收发送缓冲寄存器
RI = 0;
//令接收中断标志位为 0(软件清零)
//用户函数内容(用户可使用 UART_data 做数据处理)
unsigned char UART_data; //定义串口接收数据变量
RI = 0;
//令接收中断标志位为 0(软件清零)
UART_data = SBUF; //将接收到的数据送入变量 UART_data
//用户函数内容(用户可使用 UART_data 做数据处理)
//SBUF = UART_data; //将接收的数据发送回去(删除//即生效)
***************/
/******************************************************************************* ************** 函数名:UART 串口发送字符串函数 调 用:UART_TC (?); 参 数:需要 UART 串口发送的数据(8 位/1 字节) 返回值:无 结 果:向串口发送一个字符串,长度不限。 备 注:例:UART_TC("d9887321$"); 此函数需要#include <string.h>头文件支持。 /******************************************************************************* ***************/ void UART_TC (unsigned char *str){
EA = 1; //允许总中断(如不使用中断,可用//屏蔽) ES = 1; //允许 UART 串口的中断
TMOD = 0x20; //定时器 T/C1 工作方式 2 SCON = 0x50; //串口工作方式 1,允许串口接收(SCON = 0x40 时禁止串口接收) TH1 = 0xF3; //定时器初值高 8 位设置 TL1 = 0xF3; //定时器初值低 8 位设置 PCON = 0x80; //波特率倍频(屏蔽本句波特率为 2400) TR1 = 1; //定时器启动 } /******************************************************************************* ***************/
***************/
/*******************************************************************************
**************
函数名:UART 串口发送函数
调 用:UART_T (?);
参 数:需要 UART 串口发送的数据(8 位/1 字节)
/*******************************************************************************
**************
函数名:UART 串口接收中断处理函数
调 用:[SBUF 收到数据后中断处理]
参 数:无
返回值:无
结 果:UART 串口接收到数据时产生中断,用户对数据进行处理(并发送回去)