|
|
這里介紹一種不需要使用中斷的串口通訊方法,直接在main中的while循環(huán)里面查詢串口標(biāo)志,當(dāng)標(biāo)志發(fā)生變化的時(shí)候就進(jìn)行相應(yīng)的操作。
#include "STC12C5A60S2.h"
typedef unsigned char uint8;//定義uint8為無(wú)符號(hào)8位數(shù)據(jù)類型
void Uart1_Init(); //初始化串口函數(shù)
void main()
{
uint8 Uart_Tmp; //收發(fā)緩存器
Uart1_Init(); //初始化串口
while(1)
{
while(RI == 0) //循環(huán)等待接收到字符
{
}
RI = 0; //將標(biāo)志位清零
Uart_Tmp = SBUF; //接收串口接收到的數(shù)據(jù)
SBUF = Uart_Tmp + 5;//將數(shù)據(jù)加上5后再次發(fā)送
while(TI == 0) //等待發(fā)送結(jié)束
{
}
TI = 0; //將標(biāo)志位清零
}
}
void Uart1_Init()
{
REN = 1; //允許接收控制位置1
SM0 = 0; //設(shè)置UART工作方式
SM1 = 1;
TR1 = 1; //啟動(dòng)定時(shí)器
TMOD = 0x20;//設(shè)置定時(shí)器方式
TH1 = 0xfd; //設(shè)置波特率
TL1 = 0xfd;
}
|
-
-
RS232.zip
2018-12-13 12:30 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
22.79 KB, 下載次數(shù): 16, 下載積分: 黑幣 -5
串口通訊
|