首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教SCI调试问题

请教SCI调试问题

我买的是M68KIT912DP256的评估板,编了一个SCI的程序,怎么都调不通,请问什么问题,我的程序如下:
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dp256.h>     /* derivative information */

#pragma LINK_INFO DERIVATIVE "mc9s12dp256b"

void main(void) {
  /* put your own code here */
  int i;
  SCI1BDL = 0x34;      //设置波特率为19200
  SCI1CR1 = 0x00;      //设置8位数据格式,关闭循环模式与奇偶校验
  SCI1CR2 = 0x08;      //禁止中断,允许发送
  TSCR1_TEN = 0x01;
  for(i=0;i<10;i++)
  {
   SCI1DRL = 20;
   do{;
   }
   while(SCI1SR1_TDRE == 0);
   SCI1SR1_TDRE = 0;
  }
  //EnableInterrupts;
  /* wait forever */
}
各位大虾能看看什么问题吗?谢谢

首先你要确定你的时钟频率是正确的。
海纳百川  有容乃大

SCI1SR1_TDRE被置位1以后,需要读一下SCI1SR1寄存器把TDRE清除传送完成是看SCI1SR1的TC位 给一个例子程序参考

void SCIStartTransmit(char cData)

{

while (!SCI1SR1_TDRE)

{ // ensure Tx data buffer empty }

 SCI1DRL = cData; // load data to data register

while (!SCI1SR1_TC) { // wait for Tx complete }

}

[此贴子已经被作者于2005-11-7 10:00:27编辑过]

如何在DP256B中实现SCI口实现全双工通信

我用9S12DP256,想用TX0发送信号给RX0(以测试我的载拨通道),这样应该用全双工模式,但是SCI0DRL是功共用,这样才能发完以后能接收到而不丢失。
              非学无以广才,非志无以成学;              
实现发送和接收共用SCIODRL 而不冲突 ,我是设立接收中断, 在中断里关闭发送,在最后一个数据接收完成后 ,开启发送,这样能够实现互不干涉。
不过你要是想测一下一块板子的话,不好说,干吗不再多加一块板子??
飞思卡尔带我走进神奇的单片机世界
返回列表