找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9551|回复: 5
打印 上一主题 下一主题
收起左侧

error C231: 'RCLK': redefinition关于单片机8*8_LED点阵点亮第一个灯报错问题

[复制链接]
跳转到指定楼层
楼主
大佬们 我想请问为什么我老是出现一个报错:..\user\includes.h(20): error C231: 'RCLK': redefinition代码示例:
自己定义的文件:
#ifndef _INCLUDES_H_
#define _INCLUDES_H_

#include<reg52.h>
#include<intrins.h>

sbit SRCLK = P3^6;
sbit RCLK = P3^5;
sbit SER = P3^4;

#define GPIO_LIGHT P0
#define GPIO_KEY P1

typedef unsigned char u8;
typedef unsigned int u16;

u8 code smgduan[16] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
//共阴数码管
void Hc595SendByte(u8 dat1, u8 dat2);

void Hc595SendByte(u8 dat1, u8 dat2)
{
        u8 i;
        SRCLK = 1;
        RCLK = 1;
        for(i = 0; i< 8;i++)
        {
                SER = dat1>>7;
                dat1<<=1;
               
                SRCLK = 0;
                _nop_();
                _nop_();
                SRCLK = 1;
        }
        for(i = 0; i< 8;i++)
        {
                SER = dat2>>7;
                dat2<<=1;
               
                SRCLK = 0;
                _nop_();
                _nop_();
                SRCLK = 1;
        }

        RCLK = 0;
        _nop_();
        _nop_();
        RCLK = 1;
}

#endif


我的主函数:
#include"includes.h"

/*
        函数名称:主函数
        函数功能:运行程序入口
*/

void main()
{
        while(1)
        {
                Hc595SendByte(0xfe,0x01);
        }
}


--------------------------------------------------------------------------------------------------------------------------------------------
以下是我买的开发板的原理图:


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2020-3-22 02:58 | 只看该作者
把程序中的所有RCLK改为SRCLK就行了
回复

使用道具 举报

板凳
ID:704738 发表于 2020-3-24 16:32 | 只看该作者
csmyldl 发表于 2020-3-22 02:58
把程序中的所有RCLK改为SRCLK就行了

请问为什么?RCLK用的是P3^5 ,如果都改成了SRCLK 那P3^5谁用?不是出现重复定义吗
回复

使用道具 举报

地板
ID:213173 发表于 2020-3-24 17:43 | 只看该作者
程序中sbit RCLK = P3^5;需要重新命名,因为与头文件#include<reg52.h>里的寄存器命名重名sbit RCLK   = T2CON^5;,沙发的建议行不通,会导致595工作不正常。建议改为sbit LCLK = P3^5;,程序中的名称也要一道改成LCLK。
回复

使用道具 举报

5#
ID:704738 发表于 2020-3-25 17:27 | 只看该作者
wulin 发表于 2020-3-24 17:43
程序中sbit RCLK = P3^5;需要重新命名,因为与头文件#include里的寄存器命名重名sbit RCLK   = T2CON^5;, ...

谢谢!
回复

使用道具 举报

6#
ID:796099 发表于 2020-7-2 23:04 | 只看该作者
你的<reg52.h>改为<reg51.h>应该就可以了。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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