|
我把AUXR1 = 0x40 切換為P3.6 P3.7,但用串口助手COM5(調(diào)試時(shí)用)連接P3.6 P3.7時(shí)沒有反應(yīng),用回COM4(下載時(shí)用)卻有反應(yīng),是切換不成功的意思????
還是還有什么東西漏掉了??
9b8e83117119c737e130e6948410013.jpg (190.88 KB, 下載次數(shù): 55)
下載附件
2019-12-25 10:59 上傳
- #include "reg52.h"
- #include "string.h"
- typedef unsigned int u16;
- typedef unsigned char u8;
- sfr AUXR1 = 0xa2; //串口切換控制寄存器
- #define AUXR1 = 0x40 //串口切換到P3.6和P3.7
- 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++;
- }
復(fù)制代碼
|
|