智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2402|回复: 5
打印 上一主题 下一主题

[单片机] SCI程序有问题,电脑接收不到数据,求大神指教

[复制链接]

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
189
威望
136
贡献
37
兑换币
0
注册时间
2012-4-6
在线时间
8 小时
毕业学校
华南理工大学
跳转到指定楼层
1#
发表于 2012-10-16 16:22:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
程序如下
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */



void initPLL(void){                 //锁相环初始化,将总线频率调整到40M
    CLKSEL=0X00;                        //禁止锁相环,时钟有外部晶振提供,总线频率=外部晶振/2
    PLLCTL_PLLON=1;                     //打开锁相环
    SYNR=0x49;         
    REFDV=0x43;                         // pllclock=fvco=2*osc*(1+SYNR)/(1+REFDV)=80MHz;
    POSTDIV = 0x00;
    _asm(nop);                           //BUS CLOCK=40M
    _asm(nop);
    while(!(CRGFLG_LOCK==1));            // 等待锁相环初始化完成
    CLKSEL_PLLSEL =1;                    // 使用锁相环
}
//-----------------------初始化SCI0----------------------------//
void SciInit()
  {     
     SCI0BDL=130;                       //波特率19200   
     SCI0CR1=0;
     SCI0CR2=0X2C;
  }
//----------------------读SCI数据-----------------------------//
   unsigned char SciRead()
    {
      if(SCI0SR1_RDRF==1)     //表明数据从位移寄存器传输到SCI数据寄存器      
         {
         SCI0SR1_RDRF=1;      //读取数据寄存器会将RDRF清除  重新置位      
         return SCI0DRL;      //返回数据寄存器的数据      
          }
    }
   
   
    //-----------------写CI数据---------------------------------//
    void SciWrite(unsigned char sendchar)
     {     
       while (!(SCI0SR1&0x80));
       SCI0DRH=0;
       SCI0DRL=sendchar;
     }
     
     
void main(void)
{
  /* put your own code here */
   DisableInterrupts;
   initPLL();
   SciInit();
  

EnableInterrupts;

  for(;;) {
    //_FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}

#pragma CODE_SEG NON_BANKED   
void  interrupt 20 SCI0_re(void)
{
   unsigned char ch;
   ch=SciRead();
   SciWrite(ch) ;
  }


现象是用串口工具发送给单片机数据,串口工具表示接收不回来,是什么问题呢,串口的波特率、数据位什么的跟程序设定一样,并且com口处也改成一样的,是不是程序有什么问题

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
189
威望
136
贡献
37
兑换币
0
注册时间
2012-4-6
在线时间
8 小时
毕业学校
华南理工大学
2#
 楼主| 发表于 2012-10-16 16:23:52 | 只看该作者
帮帮忙吧
回复

使用道具 举报

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
189
威望
136
贡献
37
兑换币
0
注册时间
2012-4-6
在线时间
8 小时
毕业学校
华南理工大学
3#
 楼主| 发表于 2012-10-16 18:00:08 | 只看该作者
没人知道吗
回复

使用道具 举报

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
189
威望
136
贡献
37
兑换币
0
注册时间
2012-4-6
在线时间
8 小时
毕业学校
华南理工大学
4#
 楼主| 发表于 2012-10-16 18:31:05 | 只看该作者
以上程序是正确的,好吧,自己没有看电路图,原来自己电路板上的串口和芯片管脚是断开的,要跳线帽~~~晕死
回复

使用道具 举报

17

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1432
威望
725
贡献
303
兑换币
34
注册时间
2012-2-14
在线时间
202 小时
毕业学校
安徽理工大学
5#
发表于 2012-11-11 10:35:29 | 只看该作者
luder 发表于 2012-10-16 18:31
以上程序是正确的,好吧,自己没有看电路图,原来自己电路板上的串口和芯片管脚是断开的,要跳线帽~~~晕死

用串口助手调出来了吗??求助
回复

使用道具 举报

3

主题

616

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2029
QQ
威望
1114
贡献
433
兑换币
264
注册时间
2012-8-31
在线时间
241 小时
6#
发表于 2013-4-6 19:23:28 | 只看该作者
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-29 15:20 , Processed in 0.076614 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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