久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9835|回復: 13
打印 上一主題 下一主題
收起左側

STC15系列單片機串口切換問題

  [復制鏈接]
跳轉到指定樓層
樓主
如何通過程序判斷選用了那個外部串口切換呢,是判斷接受或發送引腳被拉低嗎?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:251595 發表于 2017-11-20 19:41 | 只看該作者
這個問題有點難度
回復

使用道具 舉報

板凳
ID:82765 發表于 2017-11-20 19:59 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

地板
ID:213173 發表于 2017-11-20 21:35 | 只看該作者
當然可以通過程序判斷選用了那個外部串口切換。





回復

使用道具 舉報

5#
ID:60379 發表于 2017-11-21 09:58 | 只看該作者
建議閱讀《51單片機輕松入門 基于STC15W4K系列》,讀懂后這些簡單的問題都被一掃光了
回復

使用道具 舉報

6#
ID:231173 發表于 2017-11-22 09:59 | 只看該作者
cjjcjj1 發表于 2017-11-20 19:59
沒有明白你是要做什么

就是串口1做了分時切換,程序能夠自己識別用那個串口嗎
回復

使用道具 舉報

7#
ID:47286 發表于 2017-11-22 11:06 | 只看該作者
沒懂你意思

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

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

如果淡串口多管腳切換的片子 那就沒什么辦法了 只能一組管腳監視一會再切到另一組管腳監視一會 通常100ms左右
回復

使用道具 舉報

8#
ID:212797 發表于 2017-11-22 13:14 | 只看該作者
這個樣該是寄存器設置的啊,程序是根據寄存器判斷當前用的是哪一個口
回復

使用道具 舉報

9#
ID:231173 發表于 2017-11-22 17:16 | 只看該作者
xbook_ben 發表于 2017-11-22 13:14
這個樣該是寄存器設置的啊,程序是根據寄存器判斷當前用的是哪一個口

寄存器可以設置串口切換,但是不是進行判斷吧
回復

使用道具 舉報

10#
ID:472235 發表于 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++;

}
回復

使用道具 舉報

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

我的也是  切換不過去  你找到原因了嗎
回復

使用道具 舉報

12#
ID:911776 發表于 2021-5-27 10:53 | 只看該作者
121212121212123 發表于 2019-12-25 10:26
我是把AUXR1 = 0x40切換到P3.6、P3.7,但用串口助手連接P3.6、P3.7管腳時沒反應,反而是原來的默認串口有反 ...

我也遇到這個問題,請問怎么解決的?
回復

使用道具 舉報

13#
ID:525104 發表于 2021-5-28 09:43 | 只看該作者
遇到同樣問題,發送引腳模式改為推挽模式,可以解決。
回復

使用道具 舉報

14#
ID:525104 發表于 2021-5-28 09:44 | 只看該作者
yhy08090 發表于 2021-5-27 10:53
我也遇到這個問題,請問怎么解決的?

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美1区 | 天天天堂| 91av在线看| 日日av | 日韩中文在线视频 | 日韩视频 中文字幕 | 在线一区 | 精品国产一区二区三区成人影院 | 在线国产一区二区 | 亚洲第一女人av | 欧美成人在线影院 | 激情av| 中文字幕av在线一二三区 | 成人av电影在线观看 | 日日夜夜av| 精品一区二区三区四区外站 | 亚洲av毛片| 久久精品国产久精国产 | 亚洲国产精品一区二区久久 | 成人在线小视频 | 日韩专区中文字幕 | 国产午夜精品一区二区 | 亚洲精品一区二区 | 亚洲精品在线免费 | 欧美中文字幕一区二区 | 四虎影院在线观看免费视频 | 免费色网址 | 精品视频一区二区 | 亚洲成人精品久久久 | 国产一区二区三区四区 | 4hu最新网址 | 国产精品一区一区三区 | 国产日韩欧美二区 | 色婷婷综合久久久中文字幕 | 色精品视频 | 亚洲成人第一页 | 亚洲精品久久 | 一级黄色裸片 | 视频精品一区二区三区 | 午夜精品久久久久久不卡欧美一级 | 日韩一区二区三区视频在线播放 |