导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→关于串口中断[ybs777]

 *第12626篇: 关于串口中断

  
楼 主:ybs777 2003年5月26日09:13
 关于串口中断
我在用KEIL编程时遇到了串口中断不能进入的情况。
我设置了EA=1;ES=1;
并且编写了串口中断程序:void receivorder(void) interrupt 4 using 0
汇编也看到在0023处有入口跳转指令。但是软件模拟与硬件调式就是不能进入。
请各位指教,我还应当设置哪里?
  
2楼:guest 2003年5月26日09:40
 波特率设置,还有方式设置,两边是否一致
波特率设置,还有方式设置,两边是否一致
  
3楼:ybs777 2003年5月26日09:53
 波特率绝对没有问题的。
我让串口先发一个FF出来,然后等待串口中断(这时是51等待接收PC发出的数据),如果响应中断,再发送FE给PC,但是就是不能进入中断。
  
4楼:guest 2003年5月26日12:38
 你的片子我不熟,但查320的头文件,应是
你的片子我不熟,但查320的头文件,应是双串口的。
1.串口0用的T1还是T0
2.两个串口是否共用一个中断

   老许

  
5楼:红心J 2003年5月26日10:22
 用示波器看一下有无信号.
用示波器看一下有无信号.
  
6楼:ybs777 2003年5月26日10:27
 我这里没试波仪的。
但是串口可正常工作是没有问题的,我在查询方式下完全可实现PC与MCU的信息交互。但是采用中断后就出现了,MCU接收时不进入中断的问题。我的中断服务程序就只是单纯的将SBUF中的数存起来,然后在中断返回时将其显示出来。但是,就是无法实现。 :(
  
7楼:红心J 2003年5月26日10:32
 软件模拟时,修改RI,市RI="1",试
软件模拟时,修改RI,市RI="1",试试。
  
8楼:ybs777 2003年5月26日10:37
 也试了,进不去的。我将程序贴在下面。
看看是那里不对了?MCU有两个串口,所以才出现RI_0,TI_0。
#include   <REG1210.H>  
#include   <intrins.h>  
#define BYTE unsigned char
#define WORD unsigned int
BYTE g_sbufnum;
BYTE g_variable;
BYTE g_inbuf[12];
/*+++++++++++++++++++++++++++++++++++++
  配置串口,启动TIME01
  19200,允许串口中断
++++++++++++++++++++++++++++++++++++++*/
void UARcon(void) 

 TR1=0;
 TH1=0xfd;
 TL1=0xfd;
 SCON0=0x50;
 TMOD=0x20;
 PCON=0x80;
 EA=1;
 ES=1;
 TR1=1;
}
void main(void)
{
UARcon();
while(1)
 {
 sendorder(0xff);
 while (g_sbufnum==0);//通过g_sbufnum判断是否进入中断。
 g_sbufnum=0;
 sendorder(0xfe);
 if(g_variable==0x01)
 sendorder(g_variable);
 else
 sendorder(g_variable);
 }
}
/*+++++++++++++++++++++++++++++++++++++++++++++++++   串口接收命令信号
++++++++++++++++++++++++++++++++++++++++++++++++*/
void receivorder(void) interrupt 4 using 0
{
 if(RI_0==1)
 {
 g_variable=SBUF0;
 g_sbufnum++;
 RI_0=0;
 }
}
  
9楼:荒原野草 2003年5月26日10:45
 瞎猜
既然有RI_0,TI_0,是不是也因该有ES_0
  
10楼:ybs777 2003年5月26日10:48
 是呀!
但是头文件里是这样的:
sfr IE     = 0xA8;
  sbit EA    = IE^7;
  sbit ET2   = IE^5;
  sbit ES    = IE^4;
  sbit ET1   = IE^3;
我对它真是没辙了。


  
11楼:ybs777 2003年5月26日10:59
 程序死在黄色箭头这里。无法进入中断。

此主题相关图片如下:
按此在新窗口浏览图片


  
12楼:ybs777 2003年5月26日10:43
 这是模拟时的情况。
红圈处RI为1。但是仍无输出。

此主题相关图片如下:
按此在新窗口浏览图片

>>>>>>对该主题发表你的看法

本主题贴数12,分页: [第1页]


[上一篇主题]:请教大家一个小问题!望大家告之,谢了!

[下一篇主题]:怪怪的问题,为何单片机一复位,外部RAM的数据都丢失了?