智能车制作
标题:
讨论XS串口问题
[打印本页]
作者:
chuxinggz
时间:
2009-9-27 16:47
标题:
讨论XS串口问题
这个程序为什么不能正确收发数据啊?请大家帮我看看
#include <hidef.h> /* common defines and macros */
#include <MC9S12XS128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
#include "main_asm.h" /* interface to the assembly module */
#define uchar unsigned char
#define uint unsigned int
uchar R_date,R_flag;
uchar T_date,T_flag;
uint numeric;
void PLL(void);
void SCI_INIT(void);
void NORMAL_IO_INIT(void);
uchar SCI_R(void);
void delay(uint z);
void SCI_T(uchar T_date);
void SCI_INIT(void)
{
SCI0BD=312.5;
SCI0CR1=0X00;
SCI0CR2=0B00001100;
SCI0CR2_RIE = 1;
SCI0CR2_TIE = 1;
}
void PLL(void)//48MHz
{
CLKSEL=0X00;
PLLCTL_PLLON =1;
SYNR = 0xC0|0X05;
REFDV= 0xC0|0x01; // PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1)
POSTDIV=0X00;
_asm(nop);
_asm(nop);
while(CRGFLG_LOCK == 0);
CLKSEL_PLLSEL = 1;
}
void NORMAL_IO_INIT()
{
DDRB=0XFF;
PORTB=0Xf0;
}
void delay(uint z)
{
uint i,j;
for(i=0;i<z;i++);
for(j=0;j<2770;j++);
}
uchar SCI_R(void)
{
while(SCI0SR1_RDRF)
{
SCI0SR1_RDRF=1;
return SCI0DRL;
}
}
void SCI_T(uchar T_date)
{
SCI0SR1_TC=1;
SCI0DRL=T_date;
delay(10);
}
void main(void)
{
PLL();
NORMAL_IO_INIT();
SCI_INIT();
EnableInterrupts;
asm_main(); /* call the assembly function */
delay(20);
for(;;)
{
if(SCI0SR1_RDRF==1)
{
SCI0SR1_RDRF=0;
numeric=SCI0DRL;
PORTB=numeric;
SCI0DRL=numeric;
}
}
}
作者:
whut_wj
时间:
2009-9-29 21:29
轮询,监控一下程序的执行情况。
和中断读结果差不多,具体代码我不记得了,楼主可以查一下代码。
论坛里很多。
作者:
chuxinggz
时间:
2009-10-1 12:30
谢谢前辈whut_wj
作者:
仁者
时间:
2010-2-5 12:45
SCI0BD=312.5; 还能有小数???什么意思啊??
作者:
dashier
时间:
2011-12-8 11:27
SCI0BD写的不对吧 应该分开写
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2