单片机遇到重复定义 解决不了啊

#include <REGX52.H>
unsigned char NixieTable[]={0x3F,0X06.0X5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void kk(unsigned char Location,Number)
{
    switch(Location)
    {
        case 1:P2_4=1;P2_3=1;P2_2=1;break;
        
        case 2:P2_4=1;P2_3=1;P2_2=0;break;
        
        case 3:P2_4=1;P2_3=0;P2_2=1;break;
        
        case 4:P2_4=1;P2_3=0;P2_2=0;break;
        
        case 5:P2_4=0;P2_3=1;P2_2=1;break;
        
        case 6:P2_4=0;P2_3=1;P2_2=0;break;
        
        case 7:P2_4=0;P2_3=0;P2_2=1;break;
        
        case 8:P2_4=0;P2_3=0;P2_2=0;break;
        
    }
    P0=NixieTable[Number];
}
void main()
{
    kk(2,3);
    while(1)
    {
        
    }
}

w为啥一直报错重复定义啊

void kk(unsigned char Location,Number)改为void kk(unsigned char Location,unsigned char Number)试看


void kk(unsigned char Location, unsigned char Number) 

【以下回答由 GPT 生成】

这段嵌入式硬件代码报错重复定义的原因是在函数kk()的参数列表上缺少变量类型。正确的函数声明应该为void kk(unsigned char Location, unsigned char Number)

下面是修改后的代码:

#include <REGX52.H>

unsigned char NixieTable[]={0x3F,0X06,0X5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

void kk(unsigned char Location, unsigned char Number)
{
    switch(Location)
    {
        case 1:P2_4=1;P2_3=1;P2_2=1;break;
        case 2:P2_4=1;P2_3=1;P2_2=0;break;
        case 3:P2_4=1;P2_3=0;P2_2=1;break;
        case 4:P2_4=1;P2_3=0;P2_2=0;break;
        case 5:P2_4=0;P2_3=1;P2_2=1;break;
        case 6:P2_4=0;P2_3=1;P2_2=0;break;
        case 7:P2_4=0;P2_3=0;P2_2=1;break;
        case 8:P2_4=0;P2_3=0;P2_2=0;break;
    }
    P0=NixieTable[Number];
}

void main()
{
    kk(2,3);
    while(1)
    {

    }
}

请检查修改后的代码是否可以成功编译和运行。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^