main.c

来自「飞思卡尔智能车的sci例程用于大学生智能车大赛的串口调试」· C语言 代码 · 共 66 行

C
66
字号
#include <hidef.h>      
#include <mc9s12dg128.h>     
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

/*-------记录接受次数------------------------*/
char m;
void light(void) 
{
      PORTB=m;
 }


/*-----------初始化--------------------------*/
void SciInit(){
  SCI0BDL = (unsigned char)((16000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ / 16 /*factor*/);
  SCI0CR1=0;					/*normal,no parity*/
  SCI0CR2=0X2C;       /*RIE=1,TE=1,RE=1*/
}


/*-----------发送部分-----------------------*/
void SciTx(unsigned char *text){
int i=0;
  unsigned char temp;
  temp=SCI0SR1;      /*clear flag*/
        for(i=0;i<10;i++)
       {
          while (!(SCI0SR1&0x80));  /* wait for output buffer empty */
          SCI0DRL = *text++;
        }
}

/*---------接受部分------------------------*/
char SciRx(void){
  char temp;
  char result;
  temp=SCI0SR1;      /*clear flag*/
  while(!(SCI0SR1&0x20));
  result=SCI0DRL;
  return result;
}

/*---------中断程序------------------------*/
interrupt void Serv_int(void)
{ char data[10];
 int i=0; 
  DisableInterrupts;
  for(i=0;i<10;i++){
      data[i]=SciRx();
  }
  light();
  m++;
  SciTx(data);
  EnableInterrupts;
}

/*----------主函数---------------------------*/
void main(void){
  EnableInterrupts;
  DDRB=0XFF;
  SciInit();
   for(;;){
  } 
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?