查看: 3720|回复: 4

[S12] mc9s12xs128,晶振是11.0592M,SCI无法正常通信

[复制链接]

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
7
最后登录
1970-1-1
发表于 2013-1-11 21:48:46 | 显示全部楼层 |阅读模式
我是只菜鸟,现在遇到难题实在是没办法了,以下是我编写的SCI收发程序(就是发什么收什么),在9600和54600波特率下都能运行成功,但是就是在115200下接收的就跟发的不一样,还有就是在115200下,发送数据也是没问题的,就是在接收数据的时候出现错误,跪求走过路过的大侠不吝赐教~
 #include       /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
//-----------------SCI0_Init--------------------//
  void SCI0_Init (void) 
  {
    SCI0BD = 3;                        //因为我把晶振换成了11.0592M了,经过计算115200对应的就是3
    SCI0CR1 = 0x00 ;
    SCI0CR2 = 0x0c ;
  }
//---------- SciWrite()-----------------------//
  void SciWrite(unsigned char sendchar)
{
while (!(SCI0SR1&0x80));
SCI0DRH=0;
SCI0DRL=sendchar;
}
//----------------main--------------//
void main(void) 
{
    unsigned char sci_data ;                        //定义变量,接收串口数据
    unsigned char flag;
    SCI0_Init();                                                        //初始化SCI0
    for (; ;)
    {
 if(SCI0SR1_RDRF)
       {
          flag = 1;
          sci_data = SCI0DRL;                        //接收数据
       } 
       else 
       {
       flag = 0;
       }
        if(flag == 1)
        {  
            SciWrite(sci_data);
            flag = 0;
        }
    } 


 
我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
7
最后登录
1970-1-1
 楼主| 发表于 2013-1-11 22:17:01 | 显示全部楼层

RE:mc9s12xs128,晶振是11.0592M,SCI无法正常通信

大神们,求救啊~~~~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-1-12 08:42:23 | 显示全部楼层

    RE:mc9s12xs128,晶振是11.0592M,SCI无法正常通信

    应该是总线频率引起的,你应该先配置一下总线频率,然后再计算波特率。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    7
    最后登录
    1970-1-1
     楼主| 发表于 2013-1-12 12:24:06 | 显示全部楼层

    回复:mc9s12xs128,晶振是11.0592M,SCI无法正常通信

    回复第 3 楼 于2013-01-12 08:42:23发表:
    应该是总线频率引起的,你应该先配置一下总线频率,然后再计算波特率。
    哦哦,总线频率不是晶振频率的一半么,这个程序在115200下可以正确发送,是不是就是说我的总线频率设置的应该没问题呀,就是不能正确的接收数据。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-1-15 09:06:43 | 显示全部楼层

    RE:mc9s12xs128,晶振是11.0592M,SCI无法正常通信

    这个要看默认的寄存器的值是多少,要自己算一下。这个和C51不一样。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 00:24 , Processed in 0.092879 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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