高级会员
- 积分
- 896
- 威望
- 421
- 贡献
- 245
- 兑换币
- 268
- 注册时间
- 2013-2-18
- 在线时间
- 115 小时
|
这是程序,一直不知道怎么回事,中断看寄存器时SCI0DRL里有数 SCI0SR1_RDRF就是不置位!!
求大神解析,万分感谢!!
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#include<mc9s12xs128.h>
byte TFLG;
void sciInit()
{
SCI0BD=52; //9600
SCI0CR1=0x00; //1个起始位,8个数据位,1停止位
SCI0CR2=0x2C; //00101100B,RIE接收中断允许位,TE发送允许,RE接收允许
}
void sci_receive(byte data)
{
if(SCI0SR1_RDRF)
data=SCI0DRL;
}
PBINIT()
{
DDRB=0xFF;
}
void main(void)
{
TFLG=1;
PBINIT();
sciInit();
EnableInterrupts;
while(1)
{
PORTB=TFLG;
}
}
#pragma CODE_SEG NON_BANKED
void interrupt VectorNumber_Vsci0 SCI0_re(void)
{
sci_receive(TFLG);
}
|
|