glutzsy 发表于 2017-8-29 11:20:04

求解:MC9S12XET256串口乱码

#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\r\n";   



/*************************************************************/
/*                        初始化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
无奇偶校验
但出现乱码情况,求救。

glutzsy 发表于 2017-9-1 10:09:29

已解决,硬件问题。
页: [1]
查看完整版本: 求解:MC9S12XET256串口乱码