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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC15W401AS單片機串口1切換到P3^6 P3^7 無法切換

[復制鏈接]
跳轉到指定樓層
樓主
STC15W401AS串口1切換到P3^6 P3^7 無法切換 ,在燒寫軟件上設置  了也沒有效果,按照范例程序 進行設置 串口輸出還是在P3^0,P3^1上面輸出
//sfr P_SW1   = 0xA2;             //外設功能切換寄存器2

#define S1_S0 0X04             //P_SW1.6
#define S1_S1 0X08              //P_SW1.7


void main(void)
{

                Timer0Init();
                ET0 = 1;                        //使能定時器0中斷
          UartInit();
          EA=1;

        
        
        ACC = P_SW1;
  ACC &= ~(S1_S0 | S1_S1);    //S1_S0=1 S1_S1=0
  ACC |= S1_S0;               //(P3.6/RxD_2, P3.7/TxD_2)
  P_SW1 = ACC;




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2020-7-4 17:25 | 只看該作者
AUXR1寄存器官方沒有明確是否支持位操作,S1_S1、S1_S0在AUXR1寄存器的高2位,另外15W401AS沒有定時器1,要用定時器2作波特率發生器。


無標題.jpg (77.23 KB, 下載次數: 34)

無標題.jpg

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:718536 發表于 2020-12-31 17:32 | 只看該作者
大佬,你問題解決了嗎?我也是遇到這個問題了。按照STC例程
sfr P_SW1   = 0xA2;             //外設功能切換寄存器1

#define S1_S0 0x40              //P_SW1.6
#define S1_S1 0x80              //P_SW1.7
void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
    P6M0 = 0x00;
    P6M1 = 0x00;
    P7M0 = 0x00;
    P7M1 = 0x00;
   
ACC = P_SW1;
ACC &= ~(S1_S0 | S1_S1);    //S1_S0=1 S1_S1=0
ACC |= S1_S0;               //(P3.6/RxD_2, P3.7/TxD_2)
P_SW1 = ACC;  


3.6 3.7沒有輸出的......真坑啊

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:866258 發表于 2021-1-12 11:18 | 只看該作者
第一個是把例程抄都能抄錯,明明是
#define S1_S0 0x40              //P_SW1.6
#define S1_S1 0x80              //P_SW1.7,自己都不注意看,第二個的回答倒是把例程抄了,但是連串口1初始化都沒有,怎么可能在3.6/3.7監測到數據發送呢
回復

使用道具 舉報

5#
ID:168926 發表于 2021-4-21 23:01 | 只看該作者
飄零111 發表于 2021-1-12 11:18
第一個是把例程抄都能抄錯,明明是
#define S1_S0 0x40              //P_SW1.6
#define S1_S1 0x80      ...

感謝指出
回復

使用道具 舉報

6#
ID:168926 發表于 2021-4-21 23:03 | 只看該作者
suqianfu 發表于 2020-12-31 17:32
大佬,你問題解決了嗎?我也是遇到這個問題了。按照STC例程
sfr P_SW1   = 0xA2;             //外設功能 ...

解決了 聯系的stc工程師 使用stc15fxxxx.h   

//========================================================================
// 函數: void        UART1_config(u32 brt, u8 timer, u8 io)
// 描述: UART1初始化函數。
// 參數:   brt: 通信波特率.
//       timer: 波特率使用的定時器, timer=2: 波特率使用定時器2, 其它值: 使用Timer1做波特率.
//          io: 串口1切換到的IO,  io=1: 串口1切換到P3.0 P3.1,  =1: 切換到P3.6 P3.7,  =2: 切換到P1.6 P1.7,  =3: 切換到P4.3 P4.4.
//========================================================================
void        UART1_config(u32 brt, u8 timer, u8 io)        // brt: 通信波特率,  timer=2: 使用定時器2做波特率發生器, 其余值: 使用定時器1做波特率發生器
                                                                                                //                      io=0: 串口切換到P3.0 P3.1,   1: 串口切換到P3.6 P3.7,  2: 串口切換到P1.6 P1.7
{
        brt = 65536UL - (MAIN_Fosc / 4) / brt;

        if(timer == 2)        //波特率使用定時器2
        {
                AUXR |= 0x01;                //S1 BRT Use Timer2;
                SetTimer2Baudraye((u16)brt);
        }

        else                //波特率使用定時器1
        {
                TR1 = 0;
                AUXR &= ~0x01;                //S1 BRT Use Timer1;
                AUXR |=  (1<<6);        //Timer1 set as 1T mode
                TMOD &= ~(1<<6);        //Timer1 set As Timer
                TMOD &= ~0x30;                //Timer1_16bitAutoReload;
                TH1 = (u8)(brt >> 8);
                TL1 = (u8)brt;
                ET1 = 0;                        // 禁止Timer1中斷
                INT_CLKO &= ~0x02;        // Timer1不輸出高速時鐘
                TR1  = 1;                        // 運行Timer1
        }

        S1_8bit();                //頭文件的宏定義,  8位數據, 1位起始位, 1位停止位, 無校驗
                 if(io == 1)        {        S1_USE_P36P37();        P3n_standard(0xc0);        }        //UART1 使用P36 P37口
        else if(io == 2)        {        S1_USE_P16P17();        P1n_standard(0xc0);        }        //UART1 使用P16 P17口
        else                                {        S1_USE_P30P31();        P3n_standard(0x03);        }        //UART1 使用P30 P31口

        REN = 1;        //允許接收
        ES  = 1;        //允許中斷
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

7#
ID:956022 發表于 2021-8-8 15:02 | 只看該作者
搞那么復雜干什么。直接給P_SW寄存器賦值0x40不就行了
回復

使用道具 舉報

8#
ID:718536 發表于 2021-8-27 01:51 | 只看該作者
loner1994 發表于 2021-8-8 15:02
搞那么復雜干什么。直接給P_SW寄存器賦值0x40不就行了

后來看了別的大佬的例程才知道原來這么簡單啊。不過現在都轉8G 8A 8H系列。15系列估計以后越來越難買到了
8系列更快,功能更齊全。估計是新工藝加持了。好棒。
回復

使用道具 舉報

9#
ID:562798 發表于 2025-6-16 19:34 | 只看該作者
suqianfu 發表于 2020-12-31 17:32
大佬,你問題解決了嗎?我也是遇到這個問題了。按照STC例程
sfr P_SW1   = 0xA2;             //外設功能 ...

我的P3.7也沒有輸出 !你的問題怎么解決的?我就是用ISP  給出的軟件進行勾選切換的就是 TX不行  RX到沒問題一切正常!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产a区 | 亚洲精品www. | 九九久久在线看 | 国产999精品久久久久久 | 91大片 | 青青草av在线播放 | 国产精品国产精品 | 国产成人一区二区 | 欧美精品乱码99久久影院 | 国产乱人伦 | 国产成人精品午夜视频免费 | 精品视频一区二区三区在线观看 | 国产精品美女久久久久久久网站 | 亚洲一区二区三区免费在线观看 | 亚洲精品久久久一区二区三区 | 国产高清一区 | 麻豆91精品91久久久 | 欧美狠狠操| 欧美日韩亚洲在线 | 中文字幕第一页在线 | www.夜夜骑| 一二区成人影院电影网 | 99福利 | 久久精品国产久精国产 | 亚洲一区二区三区免费 | 亚洲欧美综合 | 国产精品美女一区二区三区 | 大陆一级毛片免费视频观看 | 成人精品国产免费网站 | 99精品国产一区二区青青牛奶 | 一区免费观看 | 欧产日产国产精品视频 | 国产日韩欧美一区二区 | 久久亚洲国产精品 | 亚洲人在线观看视频 | 免费视频成人国产精品网站 | 午夜免费在线电影 | a免费视频| 欧美日韩国产精品一区 | 亚洲国产精品一区二区三区 | 在线国产小视频 |