智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6420|回复: 18
打印 上一主题 下一主题

SCI寄存器SCI0DRL值一直为0

[复制链接]

2

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
538
威望
249
贡献
119
兑换币
143
注册时间
2012-11-17
在线时间
85 小时
毕业学校
重庆大学
跳转到指定楼层
1#
发表于 2013-4-21 18:00:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟新手,在运行sci程序时,SCI0DRL寄存器的值一直是0,电脑也接收不到数据。希望有好心人能帮忙解答,为这个问题困惑好久了,已经试了n个网上例程了 ,下面是我现在正在测试的一很简单的程序,还是不行。
#include <hidef.h>      
#include "derivative.h"      
#include<mc9s12xs128.h>

void Sci_init(void)
{
    SCI0BD = 52;                                        //设置波特率为9 600 bps
    SCI0CR1 = 0x00;                      //LOOPS=0,SCISWAI=0,RSRC=0,M=0,
                                                    //WAKE=0,ILT=0,PE=0,PT=0        
    SCI0CR2 = 0x0C;                                //TIE=0,TCIE=0,RIE=0,ILIE=0,
                                                    //TE=1,RE=1,RWU=0,SBK=0
}

void Sci_flg_send(int data)
{
    while(!SCI0SR1_TDRE);
    SCI0DRL = data;
}
void main(void)   
{  
   Sci_init();
   while(1) {
     Sci_flg_send(9);
   }
}

2

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
538
威望
249
贡献
119
兑换币
143
注册时间
2012-11-17
在线时间
85 小时
毕业学校
重庆大学
2#
 楼主| 发表于 2013-4-21 19:05:01 | 只看该作者
没人能回答我的问题么,这是我自己改进后的程序,串口能显示了,但是会参杂一些乱码,而且不能一直显示,显示两排就停止了,清空显示后会再出现两排就停止显示,a的值0到98循环,但是不知道为什么,SCI0DRL的值还是0.。。。求解。。。
#include <hidef.h>      
#include "derivative.h"      
#include<mc9s12xs128.h>
int a;
  void delay(int i)        //     20*12/40=6us
{
int j,k;
for (j=0; j< 20; j++)
  for(k=0; k<i; k++);
}

void Sci_init(void)
{
    SCI0BD = 52;                                        //设置波特率为9 600 bps
    SCI0CR1 = 0x00;                      //LOOPS=0,SCISWAI=0,RSRC=0,M=0,
                                                    //WAKE=0,ILT=0,PE=0,PT=0        
    SCI0CR2 = 0x0C;                                //TIE=0,TCIE=0,RIE=0,ILIE=0,
                                                    //TE=1,RE=1,RWU=0,SBK=0
}

void Sci_flg_send(void)
{
     while(SCI0SR1_TDRE==1)
    {
      SCI0DRL=a;
      delay(5000);
      a++;
      if(a>98)
        a=0;
    }   
}
void main(void)   
{   
   a=0;
   Sci_init();
   for(;;) {
   Sci_flg_send();
   delay(5000000);
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  
   
}
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
538
威望
249
贡献
119
兑换币
143
注册时间
2012-11-17
在线时间
85 小时
毕业学校
重庆大学
3#
 楼主| 发表于 2013-4-21 19:24:01 | 只看该作者
感觉我快疯了,看的人这么多就没人能回答么,你们谁有空试试这两个程序,看有木有和我一样的问题啊,本以为sci很简单就搞定了,现在弄了两天,表示束手无策了。。。。。。。
回复 支持 反对

使用道具 举报

7

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
威望
176
贡献
88
兑换币
102
注册时间
2013-3-13
在线时间
34 小时
4#
发表于 2013-4-21 19:26:40 | 只看该作者
发送前将SCI0DRH写入0,然后再发送数据试试!!
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
538
威望
249
贡献
119
兑换币
143
注册时间
2012-11-17
在线时间
85 小时
毕业学校
重庆大学
5#
 楼主| 发表于 2013-4-21 20:54:25 | 只看该作者
yumo_linux 发表于 2013-4-21 19:26
发送前将SCI0DRH写入0,然后再发送数据试试!!

也不行,现在可以发送字符串,但是数据还是跟上面的一样情况
回复 支持 反对

使用道具 举报

14

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2746
威望
1367
贡献
847
兑换币
878
注册时间
2012-11-22
在线时间
266 小时
毕业学校
三峡大学
6#
发表于 2013-4-22 10:39:12 | 只看该作者
void sci_init(void)        //串口初始化
{
        SCI0BDH=0x00;
        SCI0BDL=0xD0;        //设置波特率为19200,SCI0BD=fbus/16/19200=208,总线位64MHZ
        SCI0CR1=0x00;        //设置工作方式为8位数据模式,无奇偶校验位
        SCI0CR2=0x2c;        //允许sci发送数据与接受收据,允许接收中断,收据有效,可以读取数据
}


这是我的初始化,能用,借鉴下吧
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
538
威望
249
贡献
119
兑换币
143
注册时间
2012-11-17
在线时间
85 小时
毕业学校
重庆大学
7#
 楼主| 发表于 2013-4-24 02:32:04 | 只看该作者
jimmy0087 发表于 2013-4-22 10:39
void sci_init(void)        //串口初始化
{
        SCI0BDH=0x00;

已经搞定了,不过还是谢谢了
回复 支持 反对

使用道具 举报

11

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1200
QQ
威望
666
贡献
384
兑换币
212
注册时间
2011-10-22
在线时间
75 小时
8#
发表于 2013-5-23 22:25:26 | 只看该作者
楼主怎么解决啊!我也遇到这个问题了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
112
威望
64
贡献
26
兑换币
30
注册时间
2014-4-27
在线时间
12 小时
毕业学校
贵州大学
9#
发表于 2014-4-30 08:54:44 | 只看该作者
楼主是怎么搞定的,可以分享一下吗
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

注册会员

Rank: 2

积分
175
威望
102
贡献
43
兑换币
54
注册时间
2015-3-31
在线时间
15 小时
毕业学校
武汉理工大学
10#
发表于 2015-4-26 16:29:59 | 只看该作者
同问,楼主怎么解决的?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-6-26 22:47 , Processed in 0.063440 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表