智能车制作
标题:
SCI程序有问题,电脑接收不到数据,求大神指教
[打印本页]
作者:
luder
时间:
2012-10-16 16:22
标题:
SCI程序有问题,电脑接收不到数据,求大神指教
程序如下
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
void initPLL(void){ //锁相环初始化,将总线频率调整到40M
CLKSEL=0X00; //禁止锁相环,时钟有外部晶振提供,总线频率=外部晶振/2
PLLCTL_PLLON=1; //打开锁相环
SYNR=0x49;
REFDV=0x43; // pllclock=fvco=2*osc*(1+SYNR)/(1+REFDV)=80MHz;
POSTDIV = 0x00;
_asm(nop); //BUS CLOCK=40M
_asm(nop);
while(!(CRGFLG_LOCK==1)); // 等待锁相环初始化完成
CLKSEL_PLLSEL =1; // 使用锁相环
}
//-----------------------初始化SCI0----------------------------//
void SciInit()
{
SCI0BDL=130; //波特率19200
SCI0CR1=0;
SCI0CR2=0X2C;
}
//----------------------读SCI数据-----------------------------//
unsigned char SciRead()
{
if(SCI0SR1_RDRF==1) //表明数据从位移寄存器传输到SCI数据寄存器
{
SCI0SR1_RDRF=1; //读取数据寄存器会将RDRF清除 重新置位
return SCI0DRL; //返回数据寄存器的数据
}
}
//-----------------写CI数据---------------------------------//
void SciWrite(unsigned char sendchar)
{
while (!(SCI0SR1&0x80));
SCI0DRH=0;
SCI0DRL=sendchar;
}
void main(void)
{
/* put your own code here */
DisableInterrupts;
initPLL();
SciInit();
EnableInterrupts;
for(;;) {
//_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
#pragma CODE_SEG NON_BANKED
void interrupt 20 SCI0_re(void)
{
unsigned char ch;
ch=SciRead();
SciWrite(ch) ;
}
现象是用串口工具发送给单片机数据,串口工具表示接收不回来,是什么问题呢,串口的波特率、数据位什么的跟程序设定一样,并且com口处也改成一样的,是不是程序有什么问题
作者:
luder
时间:
2012-10-16 16:23
帮帮忙吧
作者:
luder
时间:
2012-10-16 18:00
没人知道吗
作者:
luder
时间:
2012-10-16 18:31
以上程序是正确的,好吧,自己没有看电路图,原来自己电路板上的串口和芯片管脚是断开的,要跳线帽~~~晕死
作者:
嵌入式系统设计
时间:
2012-11-11 10:35
luder 发表于 2012-10-16 18:31
以上程序是正确的,好吧,自己没有看电路图,原来自己电路板上的串口和芯片管脚是断开的,要跳线帽~~~晕死
用串口助手调出来了吗??求助
作者:
WK033857
时间:
2013-4-6 19:23
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2