求解:MC9S12XET256串口乱码

2020-02-11 09:46发布

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

#define LEDCPU PORTA_PA0
#define LEDCPU_dir DDRA_DDRA0
#define LED_ON 0
#define LED_OFF 1
#define BUS_CLOCK                   8000000           //总线频率
#define OSC_CLOCK                   16000000           //晶振频率
#define BAUD 9600                  //串口波特率

unsigned char putstring[]="abcdef ";   



/*************************************************************/
/*                        初始化SCI                          */
/*************************************************************/
void INIT_SCI(void)      
{   
  SCI2BD = BUS_CLOCK/16/BAUD;   //设置SCI2波特率为9600
  SCI2CR1 = 0x00;               //设置SCI2为正常模式,八位数据位,无奇偶校验
  SCI2CR2 = 0x08;               //允许发送数据,禁止中断功能

}


/*************************************************************/
/*                       串口发送函数                        */
/*************************************************************/
void SCI_send(unsigned char data)
{
  while(!SCI2SR1_TDRE);        //等待发送数据寄存器(缓冲器)为空
  SCI2DRL = data;
}

/*************************************************************/
/*                  串口发送字符串函数                       */
/*************************************************************/
void send_string(unsigned char *putchar)
{
  while(*putchar!=0x00)        //判断字符串是否发送完毕
  {
   SCI_send(*putchar++);  
  }
}


/*************************************************************/
/*                         主函数                            */
/*************************************************************/
void main(void)
{
  DisableInterrupts;
//  INIT_PLL();
  INIT_SCI();
  LEDCPU_dir = 1;
  EnableInterrupts;        
  LEDCPU = LED_ON;

  for(;;)                        //循环发送字符串
  {
    send_string(putstring);
    LEDCPU=~LEDCPU;              //闪灯
  }
}


串口调试助手波特率为9600
停止位1
数据位8
无奇偶校验
但出现乱码情况,求救。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。