智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2987|回复: 6
打印 上一主题 下一主题

SCI中一个奇怪的问题!请教

[复制链接]

10

主题

208

帖子

0

精华

常驻嘉宾

新手

Rank: 8Rank: 8

积分
3455

论坛元老奖章

QQ
威望
644
贡献
2693
兑换币
0
注册时间
2009-12-18
在线时间
59 小时
跳转到指定楼层
1#
发表于 2010-3-23 16:17:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      今天调串口时发送的数据总是不对,最后将整个过程中SCI的各寄存器的值记录对比发现了一个奇怪的问题!
当一开始读标志寄存器时:ReadStatus1        = SCI0SR1,寄存器没有清零,觉得很奇怪想论坛高手云
集,请各位指点一迷津。(我用的是飞思卡尔S12DG128)
···谢谢!!!

void SCI_Init( void )
{
        SCI0BDL        = ( byte ) ( BusClock / BaudRate / 16 );
        SCI0BDH = 0X00;
        SCI0CR1        = 0x00;                                               
        SCI0CR2        = 0x2C;                                               
}
void        SCI_Tx( uchar TxData )
{
        unsigned char        ReadStatus1;
       
        ReadStatus1        = SCI0SR1;
        SCI0DRH        = 0;
        SCI0DRL        = TxData;                                       
        while( !SCI0SR1_TDRE );                               
        ReadStatus1        = SCI0SR1;                               
}

10

主题

208

帖子

0

精华

常驻嘉宾

新手

Rank: 8Rank: 8

积分
3455

论坛元老奖章

QQ
威望
644
贡献
2693
兑换币
0
注册时间
2009-12-18
在线时间
59 小时
2#
 楼主| 发表于 2010-3-23 21:24:14 | 只看该作者
很急呀!求教各位看到主题的论坛同盟们,帮帮忙提提意见也行。
不胜感激!!!
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
威望
184
贡献
21
兑换币
0
注册时间
2009-9-16
在线时间
8 小时
3#
发表于 2010-3-24 16:18:36 | 只看该作者
SCI0SR1的TDRE和TC默认设置为1,读SCI0SR1相当于将其恢复默认设置,是1,而不是0。你可以看看
《SCI Block Guide》
发送的数据总是不对,有可能是波特率设置有问题。
回复 支持 反对

使用道具 举报

10

主题

208

帖子

0

精华

常驻嘉宾

新手

Rank: 8Rank: 8

积分
3455

论坛元老奖章

QQ
威望
644
贡献
2693
兑换币
0
注册时间
2009-12-18
在线时间
59 小时
4#
 楼主| 发表于 2010-3-24 19:28:26 | 只看该作者
回复 3# leegee


    感谢LEEGEE
回复 支持 反对

使用道具 举报

4

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
455
QQ
威望
321
贡献
78
兑换币
2
注册时间
2010-11-30
在线时间
28 小时
5#
发表于 2011-3-12 01:23:49 | 只看该作者
xs128的SCI回显程序
回复 支持 反对

使用道具 举报

1

主题

14

帖子

0

精华

注册会员

Rank: 2

积分
195
QQ
威望
155
贡献
38
兑换币
0
注册时间
2011-8-30
在线时间
1 小时
6#
发表于 2011-8-30 14:37:33 | 只看该作者
波特率设置没问题,好像也有类似的问题
回复 支持 反对

使用道具 举报

8

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
威望
258
贡献
36
兑换币
0
注册时间
2011-11-22
在线时间
29 小时
7#
发表于 2012-2-19 10:27:34 | 只看该作者
SCI0BDL= ( byte ) ( BusClock / BaudRate / 16 );
        SCI0BDH = 0X00;
这两行换一下顺序看看
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-6 18:21 , Processed in 0.331672 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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