380091044 发表于 2024-7-18 15:52:14

串口初始化时,串口1没有选择引脚,对应的引脚从哪里看出来?






void DebugPrintfInit(void)
{
#if(PrintUart == 1)//这里没有引脚选择?对应引脚是哪个?
        SCON = (SCON & 0x3f) | 0x40;
        AUXR |= 0x40;                //定时器时钟1T模式
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TL1= TM;
        TH1= TM>>8;
        TR1 = 1;                                //定时器1开始计时
//        REN = 1;      //允许接收

//        SCON = (SCON & 0x3f) | 0x40;
//        T2L= TM;
//        T2H= TM>>8;
//        AUXR |= 0x15;   //串口1选择定时器2为波特率发生器
//        REN = 1;      //允许接收
#else
        P_SW2 |= 1;         //UART2 switch to: 0: P1.0 P1.1,1: P4.6 P4.7;串口2这里进行了选择,串口1却没有?
        S2CON = (S2CON & 0x3f) | 0x40;
        T2L= TM;
        T2H= TM>>8;
        AUXR |= 0x14;              //定时器2时钟1T模式,开始计时
//        S2CON |= (1<<4);    //允许接收
#endif
}

DebugLab 发表于 2024-7-18 16:02:19

380091044 发表于 2024-7-18 16:05:46

DebugLab 发表于 2024-7-18 16:02


我看的熊仔的代码,我是说他这里面并没有引脚选择,引脚选择我知道,为啥没有选择呢?

DebugLab 发表于 2024-7-18 16:15:45

380091044 发表于 2024-7-18 16:05
我看的熊仔的代码,我是说他这里面并没有引脚选择,引脚选择我知道,为啥没有选择呢? ...

不选择就是默认P30 P31

hsrzq 发表于 2024-7-18 17:19:50

380091044 发表于 2024-7-18 16:05
我看的熊仔的代码,我是说他这里面并没有引脚选择,引脚选择我知道,为啥没有选择呢? ...

回忆一下汉语中“默认”的定义。
你不专门指定的话,它就是那个特殊默认的

380091044 发表于 2024-7-18 17:29:21

hsrzq 发表于 2024-7-18 17:19
回忆一下汉语中“默认”的定义。
你不专门指定的话,它就是那个特殊默认的 ...

说的对,我已经测试了,

380091044 发表于 2024-7-18 17:29:43

DebugLab 发表于 2024-7-18 16:15
不选择就是默认P30 P31

是的,对的,都是这个口。

_奶咖君_ 发表于 2024-7-18 17:36:25

380091044 发表于 2024-7-18 17:29
是的,对的,都是这个口。

我觉得你应该关注这个寄存器的复位值,,这个复位值对应的引脚 就是所谓的默认

hsrzq 发表于 2024-7-18 17:37:38

380091044 发表于 2024-7-18 16:05
我看的熊仔的代码,我是说他这里面并没有引脚选择,引脚选择我知道,为啥没有选择呢? ...

另外,要不你换个人的代码参考参考呢?
前几天就是你被他的OS移植整郁闷的吧?
咋不长记性呢{:4_167:}

380091044 发表于 2024-7-19 08:25:16

_奶咖君_ 发表于 2024-7-18 17:36
我觉得你应该关注这个寄存器的复位值,,这个复位值对应的引脚 就是所谓的默认 ...

你说的对,你都从不同的侧面说明了这点,让我更加全面了解了这点,你说的复位是上电自动复位吗?还是不管它,它自动默认就0x00,导致的默认?
页: [1] 2
查看完整版本: 串口初始化时,串口1没有选择引脚,对应的引脚从哪里看出来?