Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
阅读:1772回复:4

问题!!!

楼主#
更多 发布于:2004-10-28 16:14
我在程序中加入以下代码:(目的是看到printf语句的串口输出)
#ifndef MONITOR51
    SCON  = 0x50;        /* SCON: mode 1, 8-bit UART, enable rcvr      */
    TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
    TH1   = 221;                /* TH1:  reload value for 1200 baud @ 16MHz   */
    TR1   = 1;                  /* TR1:  timer 1 run                          */
    TI    = 1;                  /* TI:   set TI to send first char of UART    */
#endif

它说SCON 没有定义!!!
于是我在前面加入#include <REG52.H>,
他又说很多东西重复定义了!!!

[编辑 -  10/28/04 by  Xman]
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
hebsjzslb
驱动牛犊
驱动牛犊
  • 注册日期2004-02-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-09 15:54
如果你用 是52系列CPU,最好用 #include "reg52.h",将#include "reg51.h"去掉。
这样就可避免重复定义了。
大兵
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-02 17:25
最简单的是把REG52.H中SCON的定义拷贝到你的头文件里
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
cahwlx1982
驱动小牛
驱动小牛
  • 注册日期2004-08-16
  • 最后登录2006-06-17
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-02 09:43
肯定是你的头文件里面没有定义SCON,你看看是不是你定义的寄存器的地址没有设置好,或是你的寄存器压根就没有定义,这个和你的那个#include <REG52.H>没有很大的关系的,主要是看你的头文件里头的“SCON”啊!你仔细查查看吧!
xuhaiqg
驱动牛犊
驱动牛犊
  • 注册日期2004-04-12
  • 最后登录2005-05-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-10-28 16:50
你的程序中肯定有#include <REG52.H>,#include <REG51.H>之类的东西,你在加一个#include <REG52.H>当然是重复定义了,关于SCON没有定义的问题,你仔细查看你的头文件,应该容易找出来
纸上来得终觉浅 绝知此事要躬行
游客

返回顶部