欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機串口發(fā)送外部中斷次數(shù)為什么不成功?
[打印本頁]
作者:
ADMIN_ALLENY
時間:
2021-1-8 15:34
標題:
單片機串口發(fā)送外部中斷次數(shù)為什么不成功?
想要串口發(fā)送外部中斷的次數(shù),外部中斷發(fā)生了一次,串口就發(fā)送一次數(shù)據(jù)給PC,但是我的程序?qū)嶋H測出來的情況是串口一直在發(fā)送數(shù)據(jù)。
#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位數(shù)據(jù),可變波特率
AUXR &= 0xBF; //定時器1時鐘為Fosc/12,即12T
AUXR &= 0xFE; //串口1選擇定時器1為波特率發(fā)生器
TMOD &= 0x0F; //設(shè)定定時器1為16位自動重裝方式
TL1 = 0xE6; //設(shè)定定時初值
TH1 = 0xFF; //設(shè)定定時初值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
}
void int0_init()
{
IT0 = 1; //為 1 是下降沿; 為 0 是低電平
EX0 = 0; //為 1 允許中斷; 為 0 是禁止中斷
}
/*------------------------------------------------
主函數(shù)
------------------------------------------------*/
void main (void)
{
InitUART();
stc_init();
int0_init();
EA=1;
while (1)
{
EX0 = 1;
// SendStr("UART test, thank you!");
// delay_xms(240);//延時循環(huán)發(fā)送
// delay_xms(240);
}
}
/*------------------------------------------------
發(fā)送一個字節(jié)
------------------------------------------------*/
void Sendint(unsigned int dat)
{
SBUF =dat/256;
while(!TI);
TI = 0;
SBUF =dat%256;
while(!TI);
TI = 0;
}
///*------------------------------------------------
// 發(fā)送一個字節(jié)
//------------------------------------------------*/
//void SendByte(unsigned char dat)
//{
// SBUF = dat;
// while(!TI);
// TI = 0;
//}
///*------------------------------------------------
// 發(fā)送一個字符串
//------------------------------------------------*/
//void SendStr(unsigned char *s)
//{
// while(*s!='\0')// \0 表示字符串結(jié)束標志,
// //通過檢測是否字符串末尾
// {
// SendByte(*s);
// s++;
// }
//}
void int0() interrupt 0
{
int0_count++;
Sendint(int0_count);
if(int0_count>65534)
int0_count=0;
}
不知道是什么原因,還望大神給解答一下,本人現(xiàn)在是初學者,沒能找出原因。
作者:
人人學會單片機
時間:
2021-1-8 15:40
http://m.raoushi.com/bbs/dpj-200927-1.html
STC單片機串口發(fā)送 不需要while死等 串口接收執(zhí)行軟件復位
你去看看我的貼子,Uart1_Flag=1,就能發(fā)送一次多個字節(jié)。發(fā)送完成后自動停止。
你在你的外部中斷里面把Uart1_Flag=1;即可。注意,兩次外部中斷的間隔時間不能比串口發(fā)送時間短。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1