欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC15系列單片機串口切換問題 [打印本頁]

作者: wszyb19871209    時間: 2017-11-20 17:28
標題: STC15系列單片機串口切換問題
如何通過程序判斷選用了那個外部串口切換呢,是判斷接受或發送引腳被拉低嗎?
作者: lwl0407    時間: 2017-11-20 19:41
這個問題有點難度
作者: cjjcjj1    時間: 2017-11-20 19:59
提示: 作者被禁止或刪除 內容自動屏蔽
作者: wulin    時間: 2017-11-20 21:35
當然可以通過程序判斷選用了那個外部串口切換。






作者: 無量壽經    時間: 2017-11-21 09:58
建議閱讀《51單片機輕松入門 基于STC15W4K系列》,讀懂后這些簡單的問題都被一掃光了
作者: wszyb19871209    時間: 2017-11-22 09:59
cjjcjj1 發表于 2017-11-20 19:59
沒有明白你是要做什么

就是串口1做了分時切換,程序能夠自己識別用那個串口嗎
作者: dzbj    時間: 2017-11-22 11:06
沒懂你意思

如果是選用串口發送 程序里針對不同串口調用不同函數就可以

如果是多串口的片子 哪個串口的中斷觸發就是哪個串口有數據進來 可以為每個串口做標記和緩沖區 程序根據標記置位判斷哪個串口有數據進來 然后處理緩沖區的數據并清除標記

如果淡串口多管腳切換的片子 那就沒什么辦法了 只能一組管腳監視一會再切到另一組管腳監視一會 通常100ms左右
作者: xbook_ben    時間: 2017-11-22 13:14
這個樣該是寄存器設置的啊,程序是根據寄存器判斷當前用的是哪一個口
作者: wszyb19871209    時間: 2017-11-22 17:16
xbook_ben 發表于 2017-11-22 13:14
這個樣該是寄存器設置的啊,程序是根據寄存器判斷當前用的是哪一個口

寄存器可以設置串口切換,但是不是進行判斷吧
作者: 121212121212123    時間: 2019-12-25 10:26
我是把AUXR1 = 0x40切換到P3.6、P3.7,但用串口助手連接P3.6、P3.7管腳時沒反應,反而是原來的默認串口有反應??


#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位數據,可變波特率
        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[i] = receiveData;
        RI = 0;//清除接收中斷標志位

        if(i>2){
                SBUF=buff[i];//將接收到的數據放入到發送寄存器
                while(!TI);                         //等待發送數據完成
                TI=0;                                //清除發送完成標志位
        }
                                               
        i++;

}
作者: dianzi741    時間: 2020-7-3 11:14
121212121212123 發表于 2019-12-25 10:26
我是把AUXR1 = 0x40切換到P3.6、P3.7,但用串口助手連接P3.6、P3.7管腳時沒反應,反而是原來的默認串口有反 ...

我的也是  切換不過去  你找到原因了嗎
作者: yhy08090    時間: 2021-5-27 10:53
121212121212123 發表于 2019-12-25 10:26
我是把AUXR1 = 0x40切換到P3.6、P3.7,但用串口助手連接P3.6、P3.7管腳時沒反應,反而是原來的默認串口有反 ...

我也遇到這個問題,請問怎么解決的?
作者: huaxiang800    時間: 2021-5-28 09:43
遇到同樣問題,發送引腳模式改為推挽模式,可以解決。
作者: huaxiang800    時間: 2021-5-28 09:44
yhy08090 發表于 2021-5-27 10:53
我也遇到這個問題,請問怎么解決的?

發送引腳模式改為推挽模式,可以解決




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1