智能车制作
标题:
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://111.231.132.190/)
Powered by Discuz! X3.2