智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1529|回复: 0
打印 上一主题 下一主题

[软件类] 串口调试问题

[复制链接]

5

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
877
威望
459
贡献
398
兑换币
0
注册时间
2011-12-13
在线时间
10 小时
跳转到指定楼层
1#
发表于 2012-2-22 21:56:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
网上广为流传的例程,为什么只有在电脑给单片机方的无线模块发送东西之后单片机连接的无线模块才会向电脑发送东西呢?

#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
//unsigned char txt[]={"Hello World!"} ;

  void delay(unsigned int time)
   {
     unsigned int i,j,k;
     for(i=0;i<125;i++)
     for(j=0;j<125;j++)
     for(k=time;k>0;k--);
   }
//-----------------------初始化SCI0----------------------------//
  void SciInit()
   {
     SCI0BD=52; //9600bps Baud Rate=BusClock/(16*SCIBD)
     //SCI0BDH=0;
     SCI0CR1=0; //正常8位模式,无奇偶校验
     SCI0CR2=0X2C; //发送允许 接受中断允许
   }
//----------------------读SCI数据-----------------------------//
  unsigned char SciRead()
   {
     if(SCI0SR1_RDRF==1) //表明数据从位移寄存器传输到SCI数据寄存器
      {
        SCI0SR1_RDRF=1; //读取数据寄存器会将RDRF清除 重新置位
        return SCI0DRL; //返回数据寄存器的数据
      }
   }
//-----------------写SCI数据---------------------------------//
  void SciWrite(unsigned char sendchar)
   {
     while (!(SCI0SR1&0x80));
     SCI0DRH=0;
     SCI0DRL=sendchar;
   }
//------------------------main----------------------------------//
  void main(void)
   {
     SciInit();
     EnableInterrupts;
     for(;;)
     {
     } /* wait forever */
     /* please make sure that you never leave this function */
   }
//---------------------------接收中断函数-----------------------//
  #pragma CODE_SEG NON_BANKED
   void interrupt 20 SCI0_re(void)
    {
      unsigned char ch;
      //ch=SciRead();
      SciWrite('a') ;
    }

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

本版积分规则

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

GMT+8, 2024-9-21 03:21 , Processed in 0.039861 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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