找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8497|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

怎么把C語言.C文件做成.H頭文件?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:867450 發(fā)表于 2020-12-24 23:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
下面這個(gè)網(wǎng)頁里面有LCD12864顯示的C語言代碼.c,求大神教我怎么做.h文件
https://blog.csdn.net/Augurlee/a ... 5817?locationNum=14
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2020-12-25 07:12 | 只看該作者
  1. #ifndef __LCD_H_
  2. #define __LCD_H_
  3. /***********************************
  4.    宏定義數(shù)據(jù)類型別稱及操作指令等
  5. ************************************/
  6.         #define uint unsigned int
  7.         #define uchar unsigned char
  8.         #define lcd_databus P2
  9. /***********************************
  10.    定義所使用的端口名稱
  11. ************************************/
  12.         sbit CS1=P0^3;
  13.         sbit CS2=P0^4;
  14.         sbit RS =P0^5;
  15.         sbit RW =P0^6;
  16.         sbit EN =P0^7;               

  17. /***********************************
  18.    指定對(duì)應(yīng)變量為外部變量
  19. ************************************/
  20. //        extern uchar x;
  21. //        extern uint  y;
  22. /**************************************************************
  23.   聲明供外部調(diào)用的函數(shù)
  24. **************************************************************/       
  25.         void lcd_set_line(uchar sline);
  26.         void lcd_clear(uchar sel);
  27.         void lcd_init();
  28.         void display(uchar cs, uchar page, uchar column, uchar* p);

  29. #endif
復(fù)制代碼

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:836944 發(fā)表于 2020-12-25 09:08 | 只看該作者
你是想問用keil生成hex?下個(gè)keil,生成hex的教程一搜就有

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:852300 發(fā)表于 2020-12-25 09:16 | 只看該作者
習(xí)慣用現(xiàn)成的了!都是網(wǎng)上找的!
回復(fù)

使用道具 舉報(bào)

5#
ID:367934 發(fā)表于 2020-12-25 09:16 | 只看該作者
有一個(gè)詞語叫做模塊化設(shè)計(jì),意思就是把同樣功能的功能封裝成獨(dú)立的文件。在C語言編程中最常見的就是模塊封裝成h文件和c文件。
h文件又叫頭文件。一般用于存放相關(guān)的定義和函數(shù)聲明,主要是定義提供外部使用的定義和函數(shù)聲明。學(xué)過C語言的應(yīng)該都知道定義變量時(shí)不能重復(fù)定義否則就會(huì)報(bào)錯(cuò),所以為了重復(fù)定義報(bào)錯(cuò)在h文件需要有一定的格式即預(yù)編譯命令。比如下面這個(gè)例子:
H頭文件:
tester.h
文件內(nèi)容:
#ifndef __TESTER_H  //預(yù)編譯命令,大概作用就是當(dāng)多處調(diào)用此文件時(shí),遇到前面已經(jīng)編譯過了就不會(huì)重復(fù)編譯下面的內(nèi)容。
#define __TESTER_H
/**************
存放定義和聲明的地方
**************/
#endif
/////////////////////////////////////////////////////////////////
C文件:
tester.c
內(nèi)容:
#include “tester.h”  //調(diào)用文件或者導(dǎo)入頭文件。

有函數(shù)te_printf()需要提供外部調(diào)用。
void te_printf(void)
{
        printf("abcd\r\n");
}
H頭文件:
tester.h
文件內(nèi)容:
#ifndef __TESTER_H  //預(yù)編譯命令,大概作用就是當(dāng)多處調(diào)用此文件時(shí),遇到前面已經(jīng)編譯過了就不會(huì)重復(fù)編譯下面的內(nèi)容。
#define __TESTER_H

void te_printf(void);//函數(shù)聲明

#endif
/////////////////////////////////////////////////////////////////
C文件:
tester.c
內(nèi)容:
#include “tester.h”  //調(diào)用文件或者導(dǎo)入頭文件。
//函數(shù)實(shí)現(xiàn)
void te_printf(void)
{
     printf("abcd\r\n");
}

外部使用:
文件:
main.c
內(nèi)容:
#include <stdio.h>
#include “tester.h”//導(dǎo)入頭文件
void main()
{
   te_printf();//調(diào)用函數(shù)
}
注意:調(diào)用之前需要把H文件的存放路徑告訴編譯器否則也會(huì)報(bào)錯(cuò)。









評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:744327 發(fā)表于 2020-12-25 09:43 | 只看該作者
下載keil軟件,編譯后生成hex的
回復(fù)

使用道具 舉報(bào)

7#
ID:373388 發(fā)表于 2020-12-25 10:49 | 只看該作者
不知道是要.hex文件還是.h文件;
1.打開已寫好的工程項(xiàng)目,可通過雙擊工程項(xiàng)目打開,也可以在keil中,菜單欄的P...
2.點(diǎn)擊菜單Project--Options to File,進(jìn)入到選擇對(duì)話框中
3.在Options for target對(duì)話框中,切換到target欄中,...
4.切換到output欄中,點(diǎn)擊Seclet Folder Objects,可以設(shè)置生成H...
5.切換到output欄中,勾選Create HEX file選項(xiàng),并點(diǎn)擊確定
如果是要.c文件改為.h文件,實(shí)際上把.c后綴直接改為.h就能用;我見過有人這樣用;規(guī)范一點(diǎn),還是.h文件存放相關(guān)的變量常熟定義以及函數(shù)聲明;.c文件用于存放函數(shù); .c和.h文件成對(duì)出現(xiàn);具體多看看例程序很快就能理解。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

8#
ID:390416 發(fā)表于 2020-12-25 12:53 | 只看該作者
我已經(jīng)分享了 最新的LCD12864資料和源碼截圖 審核后可以查看 歡迎使用
回復(fù)

使用道具 舉報(bào)

9#
ID:867450 發(fā)表于 2020-12-26 21:15 | 只看該作者
回復(fù)

使用道具 舉報(bào)

10#
ID:868640 發(fā)表于 2020-12-27 10:47 | 只看該作者
這個(gè)不是keil 直接就能生成嗎
回復(fù)

使用道具 舉報(bào)

11#
ID:868655 發(fā)表于 2020-12-27 10:56 來自手機(jī) | 只看該作者
如果是要.c文件改為.h文件,實(shí)際上把.c后綴直接改為.h就能用;我見過有人這樣用;規(guī)范一點(diǎn),還是.h文件存放相關(guān)的變量常熟定義以及函數(shù)聲明;.c文件用于存放函數(shù); .c和.h文件成對(duì)出現(xiàn);具體多看看例程序很快就能理解。
回復(fù)

使用道具 舉報(bào)

12#
ID:834848 發(fā)表于 2020-12-27 16:42 來自手機(jī) | 只看該作者
在Keil里面更改就行. h可以直接用
回復(fù)

使用道具 舉報(bào)

13#
ID:394148 發(fā)表于 2020-12-27 19:45 | 只看該作者
新建文件,保存時(shí)候用.h結(jié)尾,然后在.h文件的開頭寫上#ifndef __XX_H
#define __xx_H
最后寫上#endif
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表