TA的每日心情 | 开心 2022-1-29 15:03 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我把AUXR1 = 0x40 切换为P3.6 P3.7,但用串口助手COM5(调试时用)连接P3.6 P3.7时没有反应,用回COM4(下载时用)却有反应,是切换不成功的意思????
- S! L! {$ h; o. y3 `1 T3 v, U7 K6 s还是还有什么东西漏掉了??
& \7 b V$ b9 K
- #include "reg52.h"1 Z) }4 ?" Z' G( |4 c
$ }) b7 u6 U* d - #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位数据,可变波特率
- TMOD=0X20; //设置计数器工作方式2
- // AUXR |= 0x01; //串口1选择定时器2为波特率发生器
- // AUXR |= 0x04; //定时器2时钟为Fosc,即1T
- TL1 = 0xfd; //设定定时初值
- TH1 = 0xfd; //设定定时初值
- // AUXR |= 0x10; //启动定时器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;//出去接收到的数据
- buff = receiveData;
- RI = 0;//清除接收中断标志位
- if(i>2){
- SBUF=buff;//将接收到的数据放入到发送寄存器
- while(!TI); //等待发送数据完成
- TI=0; //清除发送完成标志位
- }
- i++;
- }/ N. B& @7 w+ L$ v# w4 [% a8 G3 Z
4 }7 y9 Q( V W# s: M
|
|