搜索
bottom↓
回复: 12

救急啊!!!

[复制链接]

出0入0汤圆

发表于 2012-10-5 10:07:02 | 显示全部楼层 |阅读模式
本帖最后由 454234682 于 2012-10-5 10:38 编辑

我用AVR-GCC编译程序,老是出现这个问题,解决不了哇,在线等!!!!!谢谢大侠


老是出现\M16-GCC例程\lcd12864/main.c:16: undefined reference to `LCD_Init'
可是我已将包含了#include "lcd12864.h"

下面lcd12864.h文件
#ifndef _LCD12864_H_
#define _LCD12864_H_

#include <avr/io.h>
#define LCD12864_CS  PORTA=(1<<7)
#define LCD12864_SID PORTA=(1<<6)
#define LCD12864_SCK PORTA=(1<<5)

#define uchar unsigned char
#define uint unsigned int

void LCD_Init(void);//液晶初始化
uchar LCD_ReceiveByte(void);
void LCD_CheckBusy(void);//判断液晶是否忙
void LCD_WriteCommand(uchar Cbyte);//写指令
void LCD_WriteData(uchar Dbyte);//写数据
uchar LCD_ReadData(void);

void LCD_DisplayChinese(uchar Addr,uchar *p);//显示中文或字符串
void LCD_DisplayNumber(uchar Addr,int num);//显示数字
void LCD_DisplayCLR(void);          //(开机消除噪点)

#endif


难道是Makfile没有包含.C文件?有人知道怎么弄嘛?
这样写对不对啊?

# Target file name (without extension).
TARGET = main


# Object files directory
#     To put object files in current directory, use a dot (.), do NOT make
#     this an empty or blank macro!
OBJDIR = .


# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c
SRC = lcd12864.c

# List C++ source files here. (C dependencies are automatically generated.)
CPPSRC =


# List Assembler source files here.
#     Make them always end in a capital .S.  Files ending in a lowercase .s
#     will not be considered source files but generated files (assembler
#     output from the compiler), and will be deleted upon "make clean"!
#     Even though the DOS/Win* filesystem matches both .s and .S the same,
#     it will preserve the spelling of the filenames, and gcc itself does
#     care about how the name is spelled on its command-line.
ASRC =


# Optimization level, can be [0, 1, 2, 3, s].

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-10-5 10:14:29 | 显示全部楼层
加个extern试试

出0入4汤圆

发表于 2012-10-5 10:17:26 | 显示全部楼层
建义直接把整个工程上传(当然了,可以把一些认为是重要文件去掉

出0入0汤圆

 楼主| 发表于 2012-10-5 10:24:13 | 显示全部楼层
加个extern试试
加过也试过,不行啊

出0入0汤圆

发表于 2012-10-5 10:24:36 | 显示全部楼层
不要用中文路径                                                                                                                                       

出0入0汤圆

 楼主| 发表于 2012-10-5 10:24:56 | 显示全部楼层
我是新手,不知道这里对不对
#define LCD12864_CS  PORTA=(1<<7)
#define LCD12864_SID PORTA=(1<<6)
#define LCD12864_SCK PORTA=(1<<5)

出0入0汤圆

发表于 2012-10-5 10:32:44 | 显示全部楼层
在main.c里写个#include "LCD12864.C"试试

出0入0汤圆

 楼主| 发表于 2012-10-5 10:33:33 | 显示全部楼层
lcw_swust 发表于 2012-10-5 10:32
在main.c里写个#include "LCD12864.C"试试

好的,我试试

出0入0汤圆

 楼主| 发表于 2012-10-5 10:34:03 | 显示全部楼层
trave_yang 发表于 2012-10-5 10:14
加个extern试试

加过也试过,不行啊

出0入0汤圆

 楼主| 发表于 2012-10-5 10:34:27 | 显示全部楼层
.titrwh 发表于 2012-10-5 10:24
不要用中文路径                                                                                       ...

好的,马上试试

出0入0汤圆

发表于 2012-10-5 11:12:14 来自手机 | 显示全部楼层
文件名换小写的,大写的会有问题

出0入0汤圆

发表于 2012-10-5 13:26:20 | 显示全部楼层
454234682 发表于 2012-10-5 10:24
我是新手,不知道这里对不对
#define LCD12864_CS  PORTA=(1

应改成PORTA|=(1<<7);
不然按你的操作,每操作一个引脚会置零另外的引脚。
如果你想让avr的引脚输出高低电平,应该这样定义
#define LCD1286_CS_1 PORTA|=(1<<PA7);
#define LCD1286_CS_0 PORTA&=~(1<<PA7)‘

出0入0汤圆

发表于 2012-10-5 13:30:29 | 显示全部楼层
把H文件改成小写.h试试,还有Makefile里
SRC = $(TARGET).c
SRC = lcd12864.c
改成SRC = $(TARGET).c lcd12864.c
或者
SRC = $(TARGET).c
SRC+ = lcd12864.c
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 07:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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