熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2022-4-26 21:28
正文摘要:Build started: Project: Project Build target 'Target 1' linking... LX51 LINKER/LOCATER V4.66.97.0 - SN: K1DZC-4GYRBC COPYRIGHT ARM Germany GmbH 1995 - 2019 @..\Project.lnp "..\main.obj" ... |
lkc8210 發(fā)表于 2022-4-27 14:56 謝謝了,重新指定了output文件夾,剛試了一下編譯通過(guò)了 |
zenmoleshi 發(fā)表于 2022-4-27 15:10 指定了output文件夾 |
早年C51必須用DOS8.3文件名,包括路徑名,舉個(gè)栗子,12345678.ABC,如果長(zhǎng)度長(zhǎng)了就認(rèn)不出來(lái),會(huì)出現(xiàn)系統(tǒng)IO錯(cuò)誤,無(wú)法生成文件。 |
output要自己選路徑的,好比你買(mǎi)快遞又不給人家收貨地址![]() |
你把Project 和 Hex的output路徑放到哪里了? Keil沒(méi)有權(quán)限產(chǎn)生檔案 |
有沒(méi)有高手指點(diǎn)一下,感覺(jué)是keil設(shè)置問(wèn)題 |
頂一下 |
以上是代碼![]() |
#include "datatype.h" #include "menu.h" #include <string.h> #include <stdio.h> #include <stdlib.h> void func(void) { } //首先定義一個(gè)菜單結(jié)構(gòu)體 typedef struct menu //定義一個(gè)菜單 { unsigned char range_from,range_to; //當(dāng)前顯示的項(xiàng)開(kāi)始及結(jié)束序號(hào) unsigned char itemCount; //項(xiàng)目總數(shù) unsigned char selected; //當(dāng)前選擇項(xiàng) unsigned char *menuItems[17]; //菜單項(xiàng)目 struct menu **subMenus; //子菜單 struct menu *parent; //上級(jí)菜單 ,如果是頂級(jí)則為null void (**func)(); //選擇相應(yīng)項(xiàng)按確定鍵后執(zhí)行的函數(shù) }Menu; Menu MainMenu = { //定義主菜單 0,3,4,0, //默認(rèn)顯示0-3項(xiàng),總共4項(xiàng),當(dāng)前選擇第0項(xiàng) { "測(cè)量表 ", // >表示有下級(jí)選項(xiàng) "其他設(shè)置 ", "保護(hù)設(shè)定 ", "查詢 >" } }; Menu searchMenu = { //查詢菜單 0,3,6,0, { "記帳記錄明細(xì) ", "未采集記錄數(shù) ", "設(shè)備機(jī)號(hào) ", "本機(jī)IP地址 ", "記錄空間大小 ", "軟件版本 " } }; Menu *currentMenu; //當(dāng)前的菜單 //初始化菜單: void initMenu() { char mempool[512]; init_mempool (&mempool, sizeof(mempool)); MainMenu.subMenus = malloc(sizeof(&MainMenu)*4); MainMenu.subMenus[0] = &searchMenu;//第1到3項(xiàng)沒(méi)有子菜單置null,選擇后程序會(huì)調(diào)用func中相應(yīng)項(xiàng)中的函數(shù) MainMenu.subMenus[1] = NULL; MainMenu.subMenus[2] = NULL; MainMenu.subMenus[3] = NULL;//第四項(xiàng)查詢有子菜單 MainMenu.func = malloc(sizeof(&func)*4); MainMenu.func[0] = NULL; MainMenu.func[1] = NULL; MainMenu.func[2] = &func;//當(dāng)選擇了并按了確定,會(huì)執(zhí)行func函數(shù) MainMenu.func[3] = NULL; MainMenu.parent = NULL;//表示是頂級(jí)菜單 searchMenu.subMenus = malloc(sizeof(&searchMenu)*6); searchMenu.subMenus[0] = searchMenu.subMenus[1] = searchMenu.subMenus[2] = searchMenu.subMenus[3] = searchMenu.subMenus[4] = searchMenu.subMenus[5] = NULL; searchMenu.func = malloc(sizeof(&printf)*6); searchMenu.func[0] = searchMenu.func[1] = searchMenu.func[2] = searchMenu.func[3] = searchMenu.func[4] = searchMenu.func[5] = NULL; searchMenu.parent = &MainMenu;//上一級(jí)菜單是MainMenu.進(jìn)入查詢子菜單后按返回鍵,將會(huì)顯示這個(gè)菜單項(xiàng) currentMenu = &MainMenu; } void main(void) { } |
Powered by 單片機(jī)教程網(wǎng)