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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機串口發送外部中斷次數為什么不成功?

[復制鏈接]
跳轉到指定樓層
樓主
ID:721008 發表于 2021-1-8 15:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
想要串口發送外部中斷的次數,外部中斷發生了一次,串口就發送一次數據給PC,但是我的程序實際測出來的情況是串口一直在發送數據。

#include "stc8g.h"
#include "COMMON.H"
uint int0_count=0;

void SendStr(unsigned char *s);
void Sendint(unsigned int dat);
/*------------------------------------------------
                    串口初始化
------------------------------------------------*/
void InitUART  (void)//9600bps@12.000MHz
{
SCON = 0x50;    //8位數據,可變波特率
AUXR &= 0xBF;        //定時器1時鐘為Fosc/12,即12T
AUXR &= 0xFE;        //串口1選擇定時器1為波特率發生器
TMOD &= 0x0F;        //設定定時器1為16位自動重裝方式
TL1 = 0xE6;                //設定定時初值
TH1 = 0xFF;                //設定定時初值
ET1 = 0;                //禁止定時器1中斷
TR1 = 1;                //啟動定時器1

}

void int0_init()                                                                                                                                 
{
  IT0 = 1;            //為 1 是下降沿; 為 0 是低電平
  EX0 = 0;                //為 1 允許中斷; 為 0 是禁止中斷
}

/*------------------------------------------------
                    主函數
------------------------------------------------*/
void main (void)
{
InitUART();
stc_init();
int0_init();
EA=1;
while (1)                       
{
  EX0 = 1;
//  SendStr("UART test, thank you!");
//    delay_xms(240);//延時循環發送
//    delay_xms(240);
}
}

/*------------------------------------------------
                    發送一個字節
------------------------------------------------*/
void Sendint(unsigned int dat)
{

SBUF =dat/256;
while(!TI);
      TI = 0;
SBUF =dat%256;
while(!TI);
      TI = 0;

}

///*------------------------------------------------
//                    發送一個字節
//------------------------------------------------*/
//void SendByte(unsigned char dat)
//{
// SBUF = dat;
// while(!TI);
//      TI = 0;
//}
///*------------------------------------------------
//                    發送一個字符串
//------------------------------------------------*/
//void SendStr(unsigned char *s)
//{
// while(*s!='\0')// \0 表示字符串結束標志,
//                //通過檢測是否字符串末尾
//  {
//  SendByte(*s);
//  s++;
//  }
//}

void int0() interrupt 0         
{
int0_count++;
Sendint(int0_count);
if(int0_count>65534)
int0_count=0;         
}

不知道是什么原因,還望大神給解答一下,本人現在是初學者,沒能找出原因。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:390416 發表于 2021-1-8 15:40 | 只看該作者
http://www.zg4o1577.cn/bbs/dpj-200927-1.html
STC單片機串口發送 不需要while死等 串口接收執行軟件復位

你去看看我的貼子,Uart1_Flag=1,就能發送一次多個字節。發送完成后自動停止。
你在你的外部中斷里面把Uart1_Flag=1;即可。注意,兩次外部中斷的間隔時間不能比串口發送時間短。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品9999| 99精品国产成人一区二区 | 免费三级黄 | 国产自产21区 | www日本高清视频 | 影音先锋欧美资源 | 国产成人精品一区二区三区在线 | 日韩精品一区二区三区在线观看 | 午夜寂寞影院在线观看 | 中文字幕一区在线观看视频 | 中文字幕av亚洲精品一部二部 | 日韩欧美视频网站 | 成人福利影院 | 精品久久久久久亚洲精品 | 国产成人精品一区 | 欧美激情一区二区 | 国产成人精品在线播放 | 久久久久久久久久久久久久久久久久久久 | 人人干视频在线 | 亚洲天堂中文字幕 | 成人精品视频 | 亚洲欧美日韩精品久久亚洲区 | 一区二区三区四区在线视频 | 久久av网站 | 伊人久久综合 | 97伦理电影网 | a免费视频 | 国产在线精品一区二区三区 | av激情在线| 欧美极品视频在线观看 | 成人区精品 | 91免费观看 | 亚洲国产精品视频一区 | 亚洲欧美日韩精品久久亚洲区 | 精品久久一区二区三区 | 日本一区二区视频 | 精品视频网 | 国产综合av | 四虎永久 | 91亚洲国产 | 日韩中文字幕一区 |