智能车制作

标题: SCI串口问题,求帮助 [打印本页]

作者: liangliheng    时间: 2011-4-23 13:29
标题: SCI串口问题,求帮助
我的程序是这样的
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include <MC9S12XS128.h>     /* derivative information */      
#pragma  LINK_INFO DERIVE"MC9S12XS128.h"
void SetBusCLK_64M(void)
{                                                      
    CLKSEL=0X00;   
    PLLCTL_PLLON=1;    //turn on PLL
    SYNR =0xc0 | 0x07;                          
    REFDV=0xc0 | 0x01;
    POSTDIV=0x00;      //pllclock=2*osc*(1+SYNR)/(1+REFDV)=128MHz;   
    _asm(nop);         //BUS CLOCK=64M
    _asm(nop);
    _asm(nop);
    _asm(nop);
    while(!(CRGFLG_LOCK==1));   //锁相环输出稳定
    CLKSEL_PLLSEL =1;            //engage PLL to system;
}

void SciInit(void)
{
   SCI0BDH=0x01;
         SCI0BDL=0xa0;        //9600bps
         SCI0CR1=0;            //正常8位模式,无奇偶校验
         SCI0CR2=0x2c;         //允许发送
}

void SciWrite(char x)
{
   while(!(SCI0SR1&0x80));
   SCI0DRH=0;   
   SCI0DRL=x;
}

void main(void) {
  /* put your own code here */
  SetBusCLK_64M();
  SciInit();
  
        EnableInterrupts;


  for(;;) {
   
    _FEED_COP(); /* feeds the dog */
    SciWrite(0x25);
  } /* loop forever */
  /* please make sure that you never leave main */
}
串口调试助手返回来的数值是十六进制的6D.
我的SCI00DRL明明是0x25,为什么返回来的是6D呢?我用的是PS1口单片机输出接到max232,求助,先感谢
作者: liangliheng    时间: 2011-4-23 13:34
[attach]7171[/attach]
我接收到的图像
作者: 上官文竹    时间: 2011-4-27 07:14
我用你的程序是 25
作者: liangliheng    时间: 2011-4-27 15:18
回复 3# 上官文竹


   谢谢了,我过了几天又用这程序行了。纳闷啊!
作者: 很高很瘦    时间: 2011-5-8 16:52
你是不是总线时钟整得太高了啊?
作者: pizi14584    时间: 2011-7-9 22:30
爱死你啦
作者: sonwendi    时间: 2011-7-10 20:32
SCI0CR1=0x00;?
作者: 学做飞思卡尔    时间: 2012-3-11 13:15
我写的程序,不知为什么,BDM连上电脑后,没有端口显示,不知是为什么。




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2