数码之家

 找回密码
 立即注册
搜索
查看: 1326|回复: 5

[C51] 求助大神

[复制链接]
发表于 2019-3-10 14:27:43 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请教大神此段代码问题出在哪里 感谢!!!有M币奖励

函数功能
LCD重载putchar函数
注释全乱码了:funk:
void putchar( uchar c)
{
        if(stdioAS==0)
        {
                 writedat(lcdarray[lcdbase]=c);         //±£´æÄ¿±ê×Ö·ûÔÚµ±Ç°ÏԴ棬²¢ÏÔʾ
       
                lcdbase=(lcdbase+1)&0x3f;            //¸üÐÂÏÔÖ¸µ½ÏÂÒ»¸ö£¬Îª64ʱ±äΪ0          0~63
                lcdpos(lcdbase/16,lcdbase%16);        //¶¨Î»µ½Ï¸öλÖã»
                if((lcdbase&0x0f)==0)                //·ê0,16,32,48                                               
                        writecom(0x80+(lcdbase&0x10)+((lcdbase&0x20)>>2));        //»»ÐР      
        }
//********************************************
        if(stdioAS==1)         //·¢Ë;­¹ýÁËÖжϣ¬¼´ÓÉÖжÏÇå·¢Ëͱê־λ
        {
            while (busy);               //µÈ´ýÇ°ÃæµÄÊý¾Ý·¢ËÍÍê³É
            ACC = c;                  //»ñȡУÑéλP (PSW.0)
            if (P)                      //¸ù¾ÝPÀ´ÉèÖÃУÑéλ
            {
        #if (PARITYBIT == ODD_PARITY)
                TB8 = 0;                //ÉèÖÃУÑéλΪ0
        #elif (PARITYBIT == EVEN_PARITY)
                TB8 = 1;                //ÉèÖÃУÑéλΪ1
        #endif
            }
            else
            {
        #if (PARITYBIT == ODD_PARITY)
                TB8 = 1;                //ÉèÖÃУÑéλΪ1
        #elif (PARITYBIT == EVEN_PARITY)
                TB8 = 0;                //ÉèÖÃУÑéλΪ0
        #endif
            }
                busy = 1;
            SBUF = ACC;                 //дÊý¾Ýµ½UARTÊý¾Ý¼Ä´æ÷

//                TI=0;
//        delayms(100);
        }
//*********************************************         
        if(stdioAS == 2)         //·¢Ë;­¹ýÁËÖжϣ¬¼´ÓÉÖжÏÇå·¢Ëͱê־λ
        {
      while (busy);                 //µÈ´ýÇ°ÃæµÄÊý¾Ý·¢ËÍÍê³É
      ACC = c;                            //Calculate the even parity bit P (PSW.0)
      if (P)                        //Set the parity bit according to P
      {
  #if (PARITYBIT == ODD_PARITY)
            S2CON &= ~S2TB8;        //Set parity bit to 0
  #elif (PARITYBIT == EVEN_PARITY)
            S2CON |= S2TB8;         //Set parity bit to 1
  #endif
      }
      else
      {
  #if (PARITYBIT == ODD_PARITY)
            S2CON |= S2TB8;         //Set parity bit to 1
  #elif (PARITYBIT == EVEN_PARITY)
            S2CON &= ~S2TB8;        //Set parity bit to 0
  #endif
      }
      busy = 1;
      S2BUF = ACC;                  //Send data to UART2 buffer               
        }
}

编译后的提示
compiling LM3033.c...
LM3033.h(46): error C231: '_putchar': redefinition
..\HARDWARE\LM3033.c(119): error C231: '_putchar': redefinition
..\HARDWARE\LM3033.c(180): error C231: '_putchar': redefinition
..\HARDWARE\LM3033.c - 3 Error(s), 0 Warning(s).



发表于 2019-3-10 14:40:52 | 显示全部楼层
不明觉厉,紫暑
回复 支持 反对

使用道具 举报

发表于 2019-3-10 17:26:04 | 显示全部楼层
void putchar( uchar c)函数,原型应该是:
char putchar(char c)  ——keil C51

int putchar(int c) ——ARM
回复 支持 反对

使用道具 举报

发表于 2019-3-11 10:48:27 | 显示全部楼层
不要用windows自带的文本编辑器保存,用其他的编辑器保存成UTF-8的格式就不乱码了
回复 支持 1 反对 0

使用道具 举报

发表于 2019-3-11 15:05:06 | 显示全部楼层
试试重写putc()
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-11 19:29:59 | 显示全部楼层
amo73 发表于 2019-3-10 17:26
void putchar( uchar c)函数,原型应该是:
char putchar(char c)  ——keil C51

感谢 :handshake:
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-29 15:25 , Processed in 0.187200 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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