同一个单片机程序,烧在STC89c52里串口通信正常。烧在STC15F2K60S2里就没反应
同样的设置为什么15的就不行呢???????难道是因为我15的用的内部晶振所以串口通信不正常?#include"stc15f2k60s2.h"#include"intri...
同样的设置 为什么15的就不行呢???????难道是因为我15的用的内部晶振所以串口通信不正常?
#include "stc15f2k60s2.h"
#include "intrins.h"
unsigned int DATA;
sbit led1=P0^0;
void DelayBase1second(unsigned char sec)
{
unsigned int i,j;
while(sec--)
{
for(i=0;i<250;i++)
{
for(j=0;j<100;j++);
}
}
}
void main(void)//功能:串口初始化,波特率,方式1
{
TMOD=0x20;//定时器工作方式2
TH1=0xfa;//晶振11.0592,波特率4800
TL1=0xfa;
REN=1;
SCON=0x50;//串行口工作在方式1,允许接收,波特率由定时器控制
PCON=0x00;//串行口加倍位为0
ES=1;
TR1=1;
EA = 1;
while(1)
{
if(DATA && (DATA==2||DATA==1||DATA==4||DATA==8))
{
led1=1;
DelayBase1second(3) ;
while(DATA!=0);
}
led1=0;
}//开总中断
}
void Com_Int(void) interrupt 4 //串口接收中断函数
{
EA=0;
if(RI == 1) //当硬件接收到一个数据时,RI会置位
{
DATA=SBUF; //保存接收到的数据
RI = 0; //接收到一位数据后就让RI为零,关闭中断
}
EA = 1;
}
给15的单片机接上外部晶振 还有电容 还是不行。烧录器里已选外部晶振 展开
#include "stc15f2k60s2.h"
#include "intrins.h"
unsigned int DATA;
sbit led1=P0^0;
void DelayBase1second(unsigned char sec)
{
unsigned int i,j;
while(sec--)
{
for(i=0;i<250;i++)
{
for(j=0;j<100;j++);
}
}
}
void main(void)//功能:串口初始化,波特率,方式1
{
TMOD=0x20;//定时器工作方式2
TH1=0xfa;//晶振11.0592,波特率4800
TL1=0xfa;
REN=1;
SCON=0x50;//串行口工作在方式1,允许接收,波特率由定时器控制
PCON=0x00;//串行口加倍位为0
ES=1;
TR1=1;
EA = 1;
while(1)
{
if(DATA && (DATA==2||DATA==1||DATA==4||DATA==8))
{
led1=1;
DelayBase1second(3) ;
while(DATA!=0);
}
led1=0;
}//开总中断
}
void Com_Int(void) interrupt 4 //串口接收中断函数
{
EA=0;
if(RI == 1) //当硬件接收到一个数据时,RI会置位
{
DATA=SBUF; //保存接收到的数据
RI = 0; //接收到一位数据后就让RI为零,关闭中断
}
EA = 1;
}
给15的单片机接上外部晶振 还有电容 还是不行。烧录器里已选外部晶振 展开
1个回答
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询