找回密码
 立即注册
查看: 194|回复: 4

请教大家:初始化时,串行口的发,比如串口1的TXD,必须置高吗?

[复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:684
  • 最近打卡:2026-04-04 05:32:39

54

主题

259

回帖

1434

积分

金牌会员

积分
1434
发表于 2026-1-7 11:47:57 | 显示全部楼层 |阅读模式
如题,为了测试串口,我写了如下程序:



#include "STC32G.h"

void Port_Mode()
{
        P3M1=0x00;        P3M0=0x00;
        P3=0x00;
}

void Uart1_Init(void)                                //9600bps@12.000MHz
{                       
        SCON = 0x50;                                //8位数据,可变波特率
        AUXR |= 0x01;                                //串口1选择定时器2为波特率发生器
        AUXR |= 0x04;                                //定时器时钟1T模式
        T2L = 0xC7;                                //设置定时初始值
        T2H = 0xFE;                                //设置定时初始值
        AUXR |= 0x10;                                //定时器2开始计时
       
        ES   = 1;                                        // 开串口1中断
        TI=0;
}
void UART1(void) interrupt 4                // 串行口1中断函数
{
        if (RI)
        {
                RI=0;
        }       
}

void main()
{
        Port_Mode();
        Uart1_Init();                                        //9600bps@12.000MHz
        EA=1;
        while(1)
        {       
                SBUF=0x55;
                while(!TI);
                TI=0;
        }
}


不想,串口调不通,在把函数 Port_Mode()中 P3=0x00;改为P3=0x02;后可以了,串口的2个管脚我设为准双向,这2个管脚的初始值我原以为设为高或低都可以,不想TXD设为低后,不行,必须设为高,请教大家,这时为什么,谢谢。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:370
  • 最近打卡:2026-04-04 12:33:12

844

主题

1万

回帖

2万

积分

管理员

积分
22805
发表于 2026-1-7 12:59:46 | 显示全部楼层
发送管脚设置成强推挽,接收设置成高阻输入
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:684
  • 最近打卡:2026-04-04 05:32:39

54

主题

259

回帖

1434

积分

金牌会员

积分
1434
发表于 2026-1-7 13:35:22 | 显示全部楼层
神*** 发表于 2026-1-7 12:59
发送管脚设置成强推挽,接收设置成高阻输入

谢谢管理员的回复,我刚试了下,发送脚设为强推挽,接收设为高阻输入,P3=0x00;还是不行,P3=0x02;串口就可以正常工作。

点评

串口默认是高电平,TXD需要置1  详情 回复 发表于 2026-1-7 14:35
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:725
  • 最近打卡:2026-03-30 12:09:34
已绑定手机

97

主题

7246

回帖

1万

积分

超级版主

积分
13798
发表于 2026-1-7 14:35:45 | 显示全部楼层
newl*** 发表于 2026-1-7 13:35
谢谢管理员的回复,我刚试了下,发送脚设为强推挽,接收设为高阻输入,P3=0x00;还是不行,P3=0x02;串口 ...

串口默认是高电平,TXD需要置1
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:684
  • 最近打卡:2026-04-04 05:32:39

54

主题

259

回帖

1434

积分

金牌会员

积分
1434
发表于 2026-1-7 15:03:08 | 显示全部楼层
Debu*** 发表于 2026-1-7 14:35
串口默认是高电平,TXD需要置1

好的,谢谢版主的回复。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-4-4 16:05 , Processed in 0.104251 second(s), 62 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表