金牌会员
- 积分
- 2267
- 威望
- 447
- 贡献
- 1700
- 兑换币
- 2
- 注册时间
- 2009-3-15
- 在线时间
- 60 小时
|
我的SCI0串口通讯只能从单片机发数据回来PC(数据也是错误的) , 但是不能接受PC发送的数据 ,断点运行的时候发现进入不了中断,各位帮我看下我的代码 问题出现在哪里??
#include <hidef.h>
#include <MC9S12XS128.h>
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
#define uchar unsigned char
#define uint unsigned int
uchar re_date,r_flag;
uchar tx_date,t_flag;
void delay(uint z){
uint i,j;
for(i=0;i<z;i++){
for(j=0;j<2770;j++);
}
}
void PLL(void)
{
SYNR=1;
REFDV=1;
_asm(nop);
_asm(nop);
while(!(CRGFLG_LOCK==1));
CLKSEL_PLLSEL =1;
}
void sci_init(void){
SCI0CR2=0x2c;
SCI0CR1=0;
SCI0BDH=0x00;
SCI0BDL=0x52;
}
uchar sci_rec(){
while(SCI0SR1_RDRF){
SCI0SR1_RDRF=1;
return SCI0DRL;
}
}
void sci_tre(uchar t_date){
SCI0SR1_TDRE=1;
SCI0DRL=t_date;
delay(10);
}
void main(void) {
sci_init();
SCI0CR2_RIE = 1;
delay(20);
sci_tre(0XFF);
EnableInterrupts;
for(;;) {
if(r_flag==1) {
sci_tre(re_date);
r_flag=0;
}
}
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 20 SCI0_ISR(void)
{
re_date=sci_rec();
r_flag=1;
}
#pragma CODE_SEG DEFAULT |
|