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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2682|回復(fù): 2
收起左側(cè)

STC8A8K單片機(jī)串口使用沖突

[復(fù)制鏈接]
ID:942805 發(fā)表于 2022-4-15 21:19 | 顯示全部樓層 |閱讀模式
/*
串口2通訊實(shí)驗(yàn)
程序目前功能:  發(fā)送任意數(shù)據(jù) LED都會變化  同時串口2在往主機(jī)發(fā)送0x0a
MUC主頻為11.0592
波特率為9600
*/




#include "stc8.h"


sbit led=P5^5;
#define FOSC 11059200L                          //MUC主頻為11.0592下
#define BAUD 9600                                  //串口2產(chǎn)生的波特率為9600
#define TM  (65536-(11059200L/4/9600)) //計算初值

#define FOSC 11059200L                          //MUC主頻為11.0592下
#define BAUD1 4800                                  //串口2產(chǎn)生的波特率為9600
#define TM1  (65536-(FOSC/4/BAUD1)) //計算初值
unsigned char a;
        
void delay(unsigned int m)                  //延時函數(shù)
    {
          int  a=0,b=0;
          for(a=0;a<500;a++)
          for(b=0;b<m;b++);
        
        }

void ISP_Check1(unsigned char i)                                        //串口2發(fā)送數(shù)據(jù)調(diào)用函數(shù)
{

        
                S2BUF=i;
           while(S2CON&S2TI==0);                                // 等特數(shù)據(jù)傳送        (S2TI發(fā)送中斷標(biāo)志)
  S2CON&=~S2TI;                                                //清標(biāo)志位  


}
        
        
void ISP_Check(unsigned char i)                                        //串口2發(fā)送數(shù)據(jù)調(diào)用函數(shù)
{

        
                S3BUF=i;
           while(S3CON&S3TI==0);                                // 等特數(shù)據(jù)傳送        (S2TI發(fā)送中斷標(biāo)志)
  S3CON&=~S3TI;                                                //清標(biāo)志位  


}




void main()
{
  S3CON = 0x50;       //REN=1允許串行接受狀態(tài),串口工作模式2               

  T3L=(65536-(11059200L/4/9600));                          //配置串口2波特率         初始值
  T3H=(65536-(11059200L/4/9600))>>8;                    

  T4T3M |= 0x02;              //定時器3為1T模式
    T4T3M |= 0x08;              //定時器3開始計時
  IE2 = 0x08;            //串口2中斷使能                                                           
  EA   = 1;           // 開總中斷

          S2CON = 0x50;       //REN=1允許串行接受狀態(tài),串口工作模式2               

  T2L=TM1;                          //配置串口2波特率         初始值
  T2H=TM1>>8;                    

  AUXR=0X54;                  //開啟定時器T2  并且開啟1T模式
  IE2|=0X01;           //串口2中斷使能                                                           
  EA   = 1;           // 開總中斷
        
        
  while(1)
        {
                P55 = 1;
                delay(100);
        }


}

void Uart3() interrupt 17 using 1  //串口3中斷
{
  if(S3CON&S3RI)                                                //如果收到數(shù)據(jù) S2RI置位
  {
                P55 = 0;
   a = S3BUF;
                ISP_Check(a);
   S3CON&=~S3RI;                                                //清標(biāo)志位  
  }
}




void Uart2()  interrupt 8 using 1                //串口2中斷
{
  if(S2CON&S2RI)                                                //如果收到數(shù)據(jù) S2RI置位
  {
                a = S2BUF;
   ISP_Check1(a);                                                        //翻轉(zhuǎn)LED效果
   S2CON&=~S2RI;                                                //清標(biāo)志位  
  }
}


串口2發(fā)送數(shù)據(jù)以后 串口3就接收不到數(shù)據(jù)了

回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 2022-4-16 00:04 | 顯示全部樓層

以串口2為例, 如下修改,  串口3同理修改.  (當(dāng)然, 建議是置標(biāo)志位, 主程序中發(fā)送, 而不要在中斷中發(fā)送,你非要中斷中發(fā)送,就做如下修改)

//void ISP_Check1(unsigned char i)                                        //串口2發(fā)送數(shù)據(jù)調(diào)用函數(shù)
//{
//                 S2BUF=i;
//           while(S2CON&S2TI==0);                                // 等特數(shù)據(jù)傳送        (S2TI發(fā)送中斷標(biāo)志)
//  S2CON&=~S2TI;                                                //清標(biāo)志位  
//}

void Uart2()  interrupt 8 using 1                //串口2中斷
{

  if(S2CON&S2TI)   S2CON&=~S2TI;
  if(S2CON&S2RI)                                                //如果收到數(shù)據(jù) S2RI置位
  {
                 a = S2BUF;
               S2CON&=~S2RI;                                                //清標(biāo)志位  
                S2BUF  = a;
//   ISP_Check1(a);                                                        //翻轉(zhuǎn)LED效果
  }
}
回復(fù)

使用道具 舉報

ID:47286 發(fā)表于 2022-4-16 00:30 | 顯示全部樓層
幫頂

別人的程序基本不看 主要是水平有限 讀半天都不一定能明白 但我用4個串口都開 互相不干擾 證明是完全可行的 請樓主參考其它大俠的回復(fù)再修改程序 祝你成功
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99这里只有精品视频 | 国产一区二区影院 | 精品无码三级在线观看视频 | 精品国产伦一区二区三区观看方式 | 一区二区三区国产在线观看 | 国产精品精品视频 | 国产欧美一区二区三区另类精品 | 欧美在线视频网 | 婷婷狠狠 | 91一区二区 | 在线日韩欧美 | 日韩在线播放视频 | 欧美激情一区二区三区 | 亚洲免费一区 | 国产精品视频一二三区 | 久久精品一区二区 | 超碰日本 | 日韩欧美在线不卡 | 午夜成人在线视频 | 欧美精品一级 | 午夜网站视频 | 欧美高清视频一区 | 综合网中文字幕 | 国产一区二区三区视频在线观看 | 久久综合影院 | 免费特级黄毛片 | 美女福利网站 | 久久99视频这里只有精品 | 久久久久久国产 | 精品乱人伦一区二区三区 | 日韩欧美三区 | 久久网一区二区三区 | 91色视频在线观看 | 天天干天天玩天天操 | a在线视频 | 免费在线一区二区三区 | 国产精久久久久久久 | 久久高清 | 成人午夜电影网 | 亚洲人人 | 91麻豆精品国产91久久久资源速度 |