报这个错了,求大神(first defined here)

你才是不乖的小孩呢 2017-04-25 05:45:26
这是源码

/*
* led_display.c
*
* Created on: 2017年4月18日
* Author: Huang
*
* 取模方式:横向8点左高位,上到下右到左
*/

#include"led_display.h"
#include "fonts.h"
#include"delay.h"
#include"string.h"
#define LEDRowNum 16
#define LEDColumnNum 64
#define LedBoardNum 8
#define ShiftLeftSpeed 6
int display_speed=70;
bool do_gprs_thing=0;

uint8 LedDispalyBuf[210][16]={{0}};
uint8 LedTimeBuf[8][16]={{0}};
uint8 LedTimeBuf2[8][16]={{0}};
uint8 ad_dis_play_num=0;
uint8 power_on0[40][16]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

{0x00,0x00,0xFC,0x04,0x05,0x49,0x2A,0x14,0x10,0x28,0x24,0x45,0x81,0x02,0x04,0x08},
{0x80,0x80,0x80,0xFC,0x04,0x08,0x40,0x40,0x40,0xA0,0xA0,0x10,0x10,0x08,0x04,0x02},
/* (16 X 16 , 新宋体 )*/
{0x00,0x20,0x13,0x12,0x02,0x02,0xF2,0x12,0x12,0x12,0x13,0x12,0x10,0x28,0x47,0x00},
{0x00,0x80,0x3C,0x24,0x24,0x24,0x24,0x24,0x24,0xB4,0x28,0x20,0x20,0x20,0xFE,0x00},
/* (16 X 16 , 新宋体 )*/
{0x10,0x10,0x1F,0x20,0x20,0x67,0x64,0xA4,0x27,0x20,0x22,0x21,0x20,0x21,0x22,0x2C},
{0x40,0x40,0xFE,0x40,0x40,0xFC,0x44,0x44,0xFC,0x40,0x40,0x40,0x80,0x40,0x30,0x0E},
/* (16 X 16 , 新宋体 )*/
{0x00,0x3F,0x21,0x21,0x21,0x3F,0x21,0x21,0x21,0x3F,0x21,0x21,0x21,0x41,0x41,0x80},
{0x00,0xF8,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x08,0x28,0x10}, /* (16 X 16 , 新宋体 )*/
{0x1F,0x00,0x00,0x01,0x79,0x0F,0x09,0x11,0x17,0x21,0x21,0x4F,0x81,0x01,0x05,0x02},
{0xE0,0x40,0x80,0x04,0x28,0xF0,0x20,0x10,0xD0,0x08,0x08,0xE4,0x02,0x00,0x00,0x00},
/* (16 X 16 , 新宋体 )*/
{0x00,0x7F,0x41,0x7F,0x41,0x7F,0x08,0xFF,0x00,0x7F,0x41,0x7F,0x08,0x49,0x88,0x18},
{0x00,0x04,0x04,0x08,0x10,0x22,0x02,0xC4,0x08,0x10,0x22,0x02,0x04,0x08,0x90,0x60},
/* (16 X 16 , 新宋体 )*/
{0x08,0x1D,0xF0,0x10,0x10,0xFD,0x10,0x38,0x34,0x50,0x53,0x90,0x10,0x10,0x10,0x10},
{0x10,0x10,0x90,0x90,0x10,0x10,0x90,0x90,0x10,0x1E,0xF0,0x10,0x10,0x10,0x10,0x10},
/* (16 X 16 , 新宋体 )*/
{0x10,0x10,0x10,0x13,0xFC,0x10,0x10,0x15,0x18,0x30,0xD0,0x10,0x10,0x10,0x51,0x26},
{0x20,0x20,0x20,0xFE,0x20,0x20,0x20,0xFC,0x84,0x88,0x48,0x50,0x20,0x50,0x88,0x06},

{0x08,0x04,0x00,0x7F,0x01,0x3F,0x02,0xFF,0x04,0x08,0x34,0xC4,0x04,0x08,0x10,0x20},
{0x20,0x40,0x00,0xFC,0x00,0xF8,0x00,0xFE,0x40,0x20,0x58,0x46,0x40,0x40,0x40,0x40},
/* (16 X 16 , 新宋体 )*/
{0x00,0xFC,0x23,0x20,0x20,0x3D,0x45,0x45,0x65,0x95,0x09,0x09,0x11,0x21,0x47,0x80},
{0x20,0x20,0xFE,0x20,0x20,0xFC,0x04,0xFC,0x04,0xFC,0x04,0xFC,0x04,0x04,0xFE,0x00},
/* (16 X 16 , 新宋体 )*/
{0x00,0x7C,0x44,0x44,0x44,0x7C,0x44,0x44,0x7C,0x44,0x44,0x44,0x4E,0xF0,0x01,0x02},
{0x20,0x20,0x20,0x20,0xFC,0x24,0x24,0x24,0x24,0x24,0x24,0x44,0x44,0x84,0x28,0x10},
/* (16 X 16 , 新宋体 )*/
{0x00,0x00,0x3F,0x01,0x01,0x3F,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x01,0x05,0x02},
{0x10,0xF8,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00},


{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
};

static void select_row(int rowNumber)
{

led_select_row_PutVal(NULL, rowNumber);

}

static void LED_phy_display(uint8 data)
{
/* 每个小LED板每行有8个LED灯 */
uint8 i;
for(i=0;i<8;i++)
{
if((data>>7)&0x01)
{
/*输出低电平*/
led_R1_PutVal(NULL, 0);
}
else
{
/*输出高电平*/
led_R1_PutVal(NULL, 1);
}
/*SCLK输出高电平*/
led_CLK_PutVal(NULL, 1);
/*移除已经处理的最高位*/
data<<= 1;
/*SCLK输出低电平*/
led_CLK_PutVal(NULL, 0);
}
}

static void led_destroy(uint8 rowNumber )
{
for(int i=0; i<8;i++)
{
LED_phy_display(0x00);
}
/* 片选 */
led_EN_PutVal(NULL, 1);
/* 锁存列信号,高电平有效 */
led_STB_PutVal(NULL, 1);
led_STB_PutVal(NULL, 0);

/* 行信号选择 */
select_row(rowNumber);

/* 片选 */
led_EN_PutVal(NULL, 0);
}

void LED_display_init(void)
{ //这个位置
/*行选择清零*/
led_select_row_PutVal(NULL, 0x00);
/*片选清零*/
led_EN_PutVal(NULL, 0);
/*锁存置1*/
led_STB_PutVal(NULL, 1);
/*CLK清零*/
led_CLK_PutVal(NULL, 0);
}

void PowerOnDisplay(void)
{ //还有这个位置
int i,rowNumber,columnNumber;

for(i=0;i<50;i++) //50表示显示的时间长度
{
/* 以行为单位,循环 */
for( rowNumber=0; rowNumber<16; rowNumber++)
{

/* 选择某一块 */
for( columnNumber=0; columnNumber<8; columnNumber++)
{
/* 以块为单位,写入列信号数据 */
LED_phy_display( power_on0[columnNumber][rowNumber]);

}
/* 片选 */
led_EN_PutVal(NULL, 1);
/* 锁存列信号,高电平有效 */
led_STB_PutVal(NULL, 1);
led_STB_PutVal(NULL, 0);

/* 行信号选择 */
select_row(rowNumber);

/* 片选 */
led_EN_PutVal(NULL, 0);

}
// led_destroy( rowNumber );
// delay_ms(0.5);
}

for (int i = 0; i < 50; ++i)
{

int i,rowNumber,columnNumber;

for (int rowNumber = 0; rowNumber < 16; rowNumber++)
{
for (int columnNumber = 1; columnNumber < 9; columnNumber++)
{
LED_phy_display( power_on0[columnNumber][rowNumber]);
}
/* 片选 */
led_EN_PutVal(NULL, 1);
/* 锁存列信号,高电平有效 */
led_STB_PutVal(NULL, 1);
led_STB_PutVal(NULL, 0);

/* 行信号选择 */
select_row(rowNumber);

/* 片选 */
led_EN_PutVal(NULL, 0);
}
// led_destroy( rowNumber );
// delay_ms(0.5);
}
for (int i = 0; i < 50; ++i)
{

int i,rowNumber,columnNumber;

for (int rowNumber = 0; rowNumber < 16; rowNumber++)
{
for (int columnNumber = 3; columnNumber < 11; columnNumber++)
{
LED_phy_display( power_on0[columnNumber][rowNumber]);
}
/* 片选 */
led_EN_PutVal(NULL, 1);
/* 锁存列信号,高电平有效 */
led_STB_PutVal(NULL, 1);
led_STB_PutVal(NULL, 0);

/* 行信号选择 */
select_row(rowNumber);

/* 片选 */
led_EN_PutVal(NULL, 0);
}
// led_destroy( rowNumber );
// delay_ms(0.5);
}
for (int i = 0; i < 50; ++i)
{

int i,rowNumber,columnNumber;

for (int rowNumber = 0; rowNumber < 16; rowNumber++)
{
for (int columnNumber = 5; columnNumber < 13; columnNumber++)
{
LED_phy_display( power_on0[columnNumber][rowNumber]);
}
/* 片选 */
led_EN_PutVal(NULL, 1);
/* 锁存列信号,高电平有效 */
led_STB_PutVal(NULL, 1);
led_STB_PutVal(NULL, 0);

/* 行信号选择 */
select_row(rowNumber);

/* 片选 */
led_EN_PutVal(NULL, 0);
}
// led_destroy( rowNumber );
// delay_ms(0.5);
}
for (int i = 0; i < 50; ++i)
{

int i,rowNumber,columnNumber;

for (int rowNumber = 0; rowNumber < 16; rowNumber++)
{
for (int columnNumber = 7; columnNumber < 15; columnNumber++)
{
LED_phy_display( power_on0[columnNumber][rowNumber]);
}
/* 片选 */
led_EN_PutVal(NULL, 1);
/* 锁存列信号,高电平有效 */
led_STB_PutVal(NULL, 1);
led_STB_PutVal(NULL, 0);

/* 行信号选择 */
select_row(rowNumber);

/* 片选 */
led_EN_PutVal(NULL, 0);
}
// led_destroy( rowNumber );
// delay_ms(0.5);
}
for (int i = 0; i < 50; ++i)
{

int i,rowNumber,columnNumber;

for (int rowNumber = 0; rowNumber < 16; rowNumber++)
{
for (int columnNumber = 9; columnNumber < 17; columnNumber++)
{
LED_phy_display( power_on0[columnNumber][rowNumber]);
}
/* 片选 */
led_EN_PutVal(NULL, 1);
/* 锁存列信号,高电平有效 */
led_STB_PutVal(NULL, 1);
led_STB_PutVal(NULL, 0);

/* 行信号选择 */
select_row(rowNumber);

/* 片选 */
led_EN_PutVal(NULL, 0);
}
// led_destroy( rowNumber );
// delay_ms(0.5);
}
for (int i = 0; i < 50; ++i)
{

int i,rowNumber,columnNumber;

for (int rowNumber = 0; rowNumber < 16; rowNumber++)
{
for (int columnNumber = 11; columnNumber < 19; columnNumber++)
{
LED_phy_display( power_on0[columnNumber][rowNumber]);
}
/* 片选 */
led_EN_PutVal(NULL, 1);
/* 锁存列信号,高电平有效 */
led_STB_PutVal(NULL, 1);
led_STB_PutVal(NULL, 0);

/* 行信号选择 */
select_row(rowNumber);

/* 片选 */
led_EN_PutVal(NULL, 0);
}
// led_destroy( rowNumber );
// delay_ms(0.5);
}
for (int i = 0; i < 50; ++i)
{

int i,rowNumber,columnNumber;

for (int rowNumber = 0; rowNumber < 16; rowNumber++)
{
for (int columnNumber = 13; columnNumber < 21; columnNumber++)
{
LED_phy_display( power_on0[columnNumber][rowNumber]);
}
/* 片选 */
led_EN_PutVal(NULL, 1);
/* 锁存列信号,高电平有效 */
led_STB_PutVal(NULL, 1);
led_STB_PutVal(NULL, 0);

/* 行信号选择 */
select_row(rowNumber);

/* 片选 */
led_EN_PutVal(NULL, 0);
}
// led_destroy( rowNumber );
// delay_ms(0.5);
}
}
...全文
2872 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2017-05-03
  • 打赏
  • 举报
回复
我上两天刚刚弄完这个液晶显示的部分,不过我用的是TI的片子, 如果是变量的话,联系在头文件用extren
Acuity. 2017-04-25
  • 打赏
  • 举报
回复
函数或者变量重复定义了。一键搜索该名称即可找到!
dceacho 2017-04-25
  • 打赏
  • 举报
回复
意思就是说有个东西有两个地方同时定义 第一个定义在这里
  • 打赏
  • 举报
回复
下面的循环删减了一部分,放不了这么多上贴

27,517

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧