找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 856|回复: 15
收起左侧

有关单片机C语言头文件

[复制链接]
ID:1107719 发表于 2024-3-17 21:40 | 显示全部楼层 |阅读模式
这几天又在一边抄着代码一边学。而头文件在很多时候是没有太多留意的。但这里我抄着的时候就出了点问题。比如这个帖子的基于51单片机篮球计分器12864显示仿真及源程序 - 51单片机 (51hei.com)
当我复制黏贴后...报错了。好吧还是得去看数据手册(在摸了在摸了)。
但有一个很明显得点,加了#include<reg51.h>后报错立马少了两个
12864.C(6): error C202: 'Count': undefined identifier
12864.C(7): error C202: 'Count': undefined identifier
12864.C(9): error C202: 'Count': undefined identifier
12864.C(10): error C202: 'Attack_Time': undefined identifier
12864.C(11): error C202: 'Time_sec': undefined identifier
12864.C(12): error C202: 'Attack_Time': undefined identifier
回复

使用道具 举报

ID:1107719 发表于 2024-3-17 21:41 | 显示全部楼层
12864.C(14): error C202: 'BF_flag': undefined identifier
而剩下的报错都是这些未定义。那么该怎么查需要调用的头文件?
很多时候只是抄,完全不清楚什么时候要调用什么头文件,
以及我这次该怎么处理,没什么头绪
(发帖时手滑了,主楼不小心发出去了)
回复

使用道具 举报

ID:883242 发表于 2024-3-17 22:31 | 显示全部楼层
原贴代码不全,你自己定义就行了,比如unsigned char BF_flag;
回复

使用道具 举报

ID:1107719 发表于 2024-3-18 08:55 | 显示全部楼层
也不仅仅是这些啦...主要还是看着书发现有些头文件不怎么用,也不知道怎么弄之类的。比如这个absacc.h
             51hei图片_20240318085301.jpg 51hei图片_20240318085256.jpg                 至于原帖,应该就是开头开头要再来多几个#define之类的,然后再unsigned char 什么的。我再琢磨琢磨。
回复

使用道具 举报

ID:1107719 发表于 2024-3-18 10:00 | 显示全部楼层
再补充一下。可能又出错,如楼上所说我全部加了之后出现了大量报错。再根据我自己看书得情况,在启用lcd1602时开头时要用到#include"LCD1602.h"我是要加哪些啊(? 51hei图片_20240318100021.jpg 屏幕截图 2024-03-18 095809.png 屏幕截图 2024-03-18 095818.png
51hei图片_20240318085301.jpg
51hei图片_20240318085256.jpg
回复

使用道具 举报

ID:277550 发表于 2024-3-18 10:20 | 显示全部楼层
楼主应该得明白,这是基础的、C语言的知识范畴。
回复

使用道具 举报

ID:1110945 发表于 2024-3-18 10:59 | 显示全部楼层
反正是学习,没搞懂之前就不要一下子抄太多,从最少的代码
慢慢学,一句一句的,一行一行的搞明白代码的意思和作用。
除了芯片本身的头文件,其它的头文件都不是必须的,你可自己
写函数,等函数写多了,你可以把自己写的函数归纳到一个文件
中做成自己的头文件引用到代码中。
然后你就能看得懂别人的代码,如果发现有比自己写得好的代码
可一小段一小段的抄。别人的代码不一定全是好的,真正好的代
码很少有就这么放在网上给人抄的。
回复

使用道具 举报

ID:883242 发表于 2024-3-18 15:55 | 显示全部楼层
示例代码不完整,LCD1602.h并非系统文件,而是自己写的,你显然没有这个文件。
回复

使用道具 举报

ID:1064915 发表于 2024-3-18 16:04 | 显示全部楼层
undefined identifier 未定义标识符(编程术语)
回复

使用道具 举报

ID:69038 发表于 2024-3-18 16:26 | 显示全部楼层
首要任务是:搞明白.H文件是怎么来的,和.C文件有什么关系...
搞明白之后,你的问题就不是问题了。
回复

使用道具 举报

ID:1107719 发表于 2024-3-18 17:59 | 显示全部楼层
emm,也就是说,.h文件是别人建的代码库。而我这里是没有的。因此在源代码中我需要自己重新写各种结构体来应用(因为这是别人的头文件里已经包含了的。)在以后觉得写的好的代码也可以自己建个库来用,在以后要用到的时候写个头文件就能直接应用了?是这个意思吧?我再摸摸
回复

使用道具 举报

ID:281828 发表于 2024-3-18 22:07 | 显示全部楼层
建议楼主翻看下书前面的内容,找找应该有“数据类型”的介绍,看看C语言编程的那些数据的书写格式、位数、值域这些,应该有一个表格可以查看,而后就会知道char、int、unsigned char、unsigned int----这些是咋回事了,如果你的书里没有可以百度了解下。
回复

使用道具 举报

ID:1107719 发表于 2024-3-19 08:42 | 显示全部楼层
wannenggong 发表于 2024-3-18 22:07
建议楼主翻看下书前面的内容,找找应该有“数据类型”的介绍,看看C语言编程的那些数据的书写格式、位数、 ...

单片机的书没标(可能是默认知道),而C/C++书里只标了char,int,float,double,    而void,enum,struct,union有提到,但书中几乎没怎么用过。我这书该不会买太久了?
回复

使用道具 举报

ID:642506 发表于 2024-3-19 10:31 | 显示全部楼层
实在找不到定义的范围,你可以自己前往去定义对应变量
回复

使用道具 举报

ID:1102070 发表于 2024-3-20 10:25 来自手机 | 显示全部楼层
变量调用前先定义,分全局,局部。要清楚的。
回复

使用道具 举报

ID:1113556 发表于 2024-3-20 11:04 | 显示全部楼层
'Count':'Attack_Time_sec'这些变量没有定义啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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