|
我是把AUXR1 = 0x40切換到P3.6、P3.7,但用串口助手連接P3.6、P3.7管腳時(shí)沒(méi)反應(yīng),反而是原來(lái)的默認(rèn)串口有反應(yīng)??
#include "reg52.h"
#include "string.h"
sfr AUXR1 = 0xa2; //串口切換控制寄存器
typedef unsigned int u16;
typedef unsigned char u8;
#define AUXR1 = 0x40;
u8 i = 0;
u8 buff[30];
u8 *p;
void UartInit(void){ //9600bps@11.0592MHz
SCON = 0x50; //8位數(shù)據(jù),可變波特率
TMOD=0X20; //設(shè)置計(jì)數(shù)器工作方式2
// AUXR |= 0x01; //串口1選擇定時(shí)器2為波特率發(fā)生器
// AUXR |= 0x04; //定時(shí)器2時(shí)鐘為Fosc,即1T
TL1 = 0xfd; //設(shè)定定時(shí)初值
TH1 = 0xfd; //設(shè)定定時(shí)初值
// AUXR |= 0x10; //啟動(dòng)定時(shí)器2
ES = 1;
EA = 1;
TR1 = 1;
}
void main()
{
UartInit(); // 串口初始化
while(1)
{
}
}
void Usart() interrupt 4
{
u8 receiveData;
if(i >= 5){
i = 0;
memset(buff, 0, sizeof buff);
}
receiveData=SBUF;//出去接收到的數(shù)據(jù)
buff[i] = receiveData;
RI = 0;//清除接收中斷標(biāo)志位
if(i>2){
SBUF=buff[i];//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
while(!TI); //等待發(fā)送數(shù)據(jù)完成
TI=0; //清除發(fā)送完成標(biāo)志位
}
i++;
} |
|