[{"data":1,"prerenderedAt":648},["ShallowReactive",2],{"wiki-page-/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch2-armkeilmdk-arm-dan-pian-ji-huan-jing-da-jian":3,"wiki-doc-items-/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch2-armkeilmdk-arm-dan-pian-ji-huan-jing-da-jian":595},{"id":4,"title":5,"body":6,"chapter":580,"chapterSort":581,"date":582,"description":145,"docKey":583,"docRoot":584,"docTitle":585,"extension":586,"isWikiDoc":587,"isWikiIndex":588,"layout":589,"meta":590,"navigation":587,"path":591,"seo":592,"stem":593,"wikiDepth":474,"__hash__":594},"content/wiki/2023-12-10-电控视觉环境搭建/ch2-ARMKeilMDK(ARM单片机环境搭建).md","ARM Keil MDK(ARM单片机环境搭建)",{"type":7,"value":8,"toc":573},"minimark",[9,13,51,55,59,67,71,80,83,196,201,206,211,215,218,227,230,235,238,244,247,253,261,266,309,314,343,348,352,356,377,381,386,391,397,402,407,412,417,422,427,430,435,438,441,445,448,453,458,461,478,481,496,500,503,525,529,535,539,544,547,550,553,556,559,562,569],[10,11,12],"h3",{"id":12},"介绍以及环境推荐",[14,15,16,20],"ol",{},[17,18,19],"li",{},"Keil MDK是ARM公司旗下官方软件。最主流的单片机开发环境IDE，没有之一。",[17,21,22,26],{},[23,24,25],"strong",{},"推荐版本：",[14,27,28,46],{},[17,29,30,33,34,33,37,33,40,33,43],{},[23,31,32],{},"新手：无脑"," ",[23,35,36],{},"ARM",[23,38,39],{},"Keil",[23,41,42],{},"MDK",[23,44,45],{},"5 + CubeMX(新手前期只准先安装ARM Keil MDK 5，不准用CubeMX)",[17,47,48],{},[23,49,50],{},"老鸟：无脑 VScode + CMake + CubeMX",[10,52,54],{"id":53},"arm-keil-mdk-5-cubemx推荐小鸟新手","Arm Keil MDK 5 + CubeMX【推荐小鸟(新手）】",[56,57,58],"h4",{"id":58},"简介",[14,60,61,64],{},[17,62,63],{},"最主流的开发环境(即便有很多致命缺点)，没有之一。新手无脑用，新手必须用这个方案开发STM32。",[17,65,66],{},"缺点很明显：上古的界面，上古的代码补齐，仅支持Windows，且只有X86的32位版本。",[56,68,70],{"id":69},"windows","Windows",[72,73,74],"p",{},[75,76,77],"a",{"href":77,"rel":78},"https://www.bilibili.com/video/BV18T411r7Yu",[79],"nofollow",[72,81,82],{},"所需文件获取方式：",[14,84,85,88],{},[17,86,87],{},"社团的U盘(直接拷贝)",[17,89,90,91],{},"官网：",[14,92,93,100,107,147,160,173,180,188],{},[17,94,95,96],{},"MDK5官网：",[75,97,98],{"href":98,"rel":99},"https://www.keil.com/demo/eval/arm.htm",[79],[17,101,102,103],{},"MDK5的FW固件下载链接：",[75,104,105],{"href":105,"rel":106},"https://www.keil.arm.com/devices/",[79],[17,108,109,110,139,142],{},"ARM编译器下载链接：",[14,111,112,119,131],{},[17,113,114,115],{},"ARMCC(AC5)必下：",[75,116,117],{"href":117,"rel":118},"https://developer.arm.com/downloads/view/ACOMP5?revision=r5p6-07rel1",[79],[17,120,121,122,126,127],{},"ARMCLANG(AC6)一般MDK5最新版都自带，",[123,124,125],"em",{},"不用下","：",[75,128,129],{"href":129,"rel":130},"https://developer.arm.com/downloads/view/ACOMPE",[79],[17,132,133,134],{},"AC5与AC6对比(一般不用看)：",[75,135,138],{"href":136,"rel":137},"https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Embedded%20FuSa#Editions",[79],"https://developer.arm.com/Tools and Software/Arm Compiler for Embedded FuSa#Editions",[140,141],"br",{},[143,144],"img",{"alt":145,"src":146},"","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image1.webp",[17,148,149,150,155,156],{},"Keil MDK 5 破解注册机(请关闭杀毒软件再下载)： ",[75,151,154],{"href":152,"rel":153},"https://sdutvincirobot.feishu.cn/file/SBbTbvSQ5o3dvExZ49UcGvYen8d",[79],"keygen.iso"," or ",[75,157,158],{"href":158,"rel":159},"https://www.duote.com/soft/907739.html",[79],[17,161,162,163,168,169],{},"Java_JRE下载(一般下载",[75,164,167],{"href":165,"rel":166},"https://javadl.oracle.com/webapps/download/AutoDL?BundleId=250129_d8aa705069af427f9b83e66b34f5e380",[79],"Windows Offline (64-bit)",",需要安装JRE才可以打开CubeMX)：",[75,170,171],{"href":171,"rel":172},"https://www.java.com/en/download/manual.jsp",[79],[17,174,175,176],{},"CubeMX官网：",[75,177,178],{"href":178,"rel":179},"https://www.st.com.cn/zh/development-tools/stm32cubemx.html",[79],[17,181,182,183],{},"正点原子配套资料1(A盘资料F1):",[75,184,187],{"href":185,"rel":186},"http://www.openedv.com/docs/boards/stm32/zdyz%5C_stm32f103%5C_warshipV4.html",[79],"http://www.openedv.com/docs/boards/stm32/zdyz\\_stm32f103\\_warshipV4.html",[17,189,190,191],{},"正点原子配套资料2(A盘资料F4):",[75,192,195],{"href":193,"rel":194},"http://www.openedv.com/docs/boards/stm32/zdyz%5C_stm32f407%5C_explorerV3.html",[79],"http://www.openedv.com/docs/boards/stm32/zdyz\\_stm32f407\\_explorerV3.html",[72,197,198],{},[143,199],{"alt":145,"src":200},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image2.webp",[72,202,203],{},[143,204],{"alt":145,"src":205},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image3.webp",[72,207,208],{},[143,209],{"alt":145,"src":210},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image4.webp",[10,212,214],{"id":213},"arm-keil-mdk-5-vscodekeil-assistant不推荐","Arm Keil MDK 5 + VScode(Keil Assistant)【不推荐】",[56,216,58],{"id":217},"简介-1",[14,219,220],{},[17,221,222,223,226],{},"该方式是折中方案，介于MDK5和MDK6之间的方案，可以规避掉一部分MDK5的缺点。(但是由于C/C++插件过于垃圾，所以",[23,224,225],{},"不太推荐使用",")",[56,228,70],{"id":229},"windows-1",[231,232,234],"h5",{"id":233},"配置教程","配置教程：",[72,236,237],{},"快速配置的视频：",[72,239,240],{},[75,241,242],{"href":242,"rel":243},"https://www.bilibili.com/video/BV18e4y1H7xX",[79],[72,245,246],{},"如果遇到一些问题，请看下方这个视频：",[72,248,249],{},[75,250,251],{"href":251,"rel":252},"https://www.bilibili.com/video/BV19V411g7gD/",[79],[14,254,255,258],{},[17,256,257],{},"请安装好MDK5，CubeMX，VScode等软件",[17,259,260],{},"安装VScode插件",[72,262,263],{},[143,264],{"alt":145,"src":265},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image5.webp",[14,267,269],{"start":268},3,[17,270,271,272,277,279,282,287,289,292,298,300,303],{},"配置Keil Assistant",[14,273,274],{},[17,275,276],{},"点击扩展设置",[140,278],{},[143,280],{"alt":145,"src":281},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image6.webp",[14,283,284],{"start":268},[17,285,286],{},"找到MDK5的路径",[140,288],{},[143,290],{"alt":145,"src":291},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image7.webp",[14,293,295],{"start":294},5,[17,296,297],{},"复制一下路径",[140,299],{},[143,301],{"alt":145,"src":302},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image8.webp",[14,304,306],{"start":305},7,[17,307,308],{},"填入刚才复制的路径",[72,310,311],{},[143,312],{"alt":145,"src":313},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image9.webp",[14,315,317,340],{"start":316},4,[17,318,319,320,325,327,330,332,335,337],{},"用VScode打开MDK5工程",[14,321,322],{},[17,323,324],{},"打开工程",[140,326],{},[143,328],{"alt":145,"src":329},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image10.webp",[140,331],{},[143,333],{"alt":145,"src":334},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image11.webp",[140,336],{},[143,338],{"alt":145,"src":339},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image12.webp",[17,341,342],{},"然后就可以用VScode编辑源码了",[72,344,345],{},[143,346],{"alt":145,"src":347},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image13.webp",[231,349,351],{"id":350},"注意事项必看","注意事项（必看）：",[353,354,355],"h6",{"id":355},"须知",[14,357,358,365,368,371,374],{},[17,359,360,361,364],{},"该方式仅仅为",[23,362,363],{},"折中方案","，比单用MDK5好用一点，但远没有MDK6好用。",[17,366,367],{},"VScode只负责代码编辑(建议别用Keil Assistant的编译等功能)。",[17,369,370],{},"MDK5负责编译，下载，debug，添加源文件，头文件等其他一切操作。",[17,372,373],{},"优点：解决了AC6编译器的go to definition失效的问题(AC6全是优点，这是唯一缺点)；解决了MDK5上古界面的不护眼；解决了MDK5代码提示拉跨；可以使用各种VScode的插件提高编辑效率。",[17,375,376],{},"缺点：需要同时开着VScode和MDK5，各司其职，不统一。C/C++插件的代码提示虽比mdk5好，但也是过于拉胯。(远不如MDK6+Clangd)",[353,378,380],{"id":379},"文字编码有问题","文字🦟编码有问题",[14,382,383],{},[17,384,385],{},"问题如下：",[72,387,388],{},[143,389],{"alt":145,"src":390},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image14.webp",[14,392,394],{"start":393},2,[17,395,396],{},"手动改编码(点右下角的UTF-8，推荐用下方的插件解决，比手改便捷)：",[72,398,399],{},[143,400],{"alt":145,"src":401},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image15.webp",[72,403,404],{},[143,405],{"alt":145,"src":406},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image16.webp",[72,408,409],{},[143,410],{"alt":145,"src":411},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image17.webp",[72,413,414],{},[143,415],{"alt":145,"src":416},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image18.webp",[14,418,419],{"start":268},[17,420,421],{},"插件(VScode的特点就是插件多，不用插件的vscode失去了灵魂)",[72,423,424],{},[143,425],{"alt":145,"src":426},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image19.webp",[72,428,429],{},"该插件会自动提示你当前的编码有问题，自动猜测正确编码，点击yes就可以自动修改。",[72,431,432],{},[143,433],{"alt":145,"src":434},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image20.webp",[353,436,437],{"id":437},"误报错",[72,439,440],{},"不用管，只要MDK5编译不报错就行。",[353,442,444],{"id":443},"无法go-to-definition","无法go to definition",[72,446,447],{},"(如果有问题才需要做，没问题就不要管)",[72,449,450],{},[143,451],{"alt":145,"src":452},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image21.webp",[72,454,455],{},[143,456],{"alt":145,"src":457},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image22.webp",[72,459,460],{},"在下面框中加上：(加完后可能还会误报错，但是已经可以正常go to definition了)",[462,463,467],"pre",{"className":464,"code":465,"language":466,"meta":145,"style":145},"language-json shiki shiki-themes github-light github-dark","..\\**\n","json",[468,469,470],"code",{"__ignoreMap":145},[471,472,475],"span",{"class":473,"line":474},"line",1,[471,476,465],{"class":477},"sVt8B",[72,479,480],{},"或者 将Include Path这一栏里的绝对路径全改为相对路径(下方只列举一部分)：",[462,482,484],{"className":464,"code":483,"language":466,"meta":145,"style":145},"..\\applications\\Inc\n..\\bsp\\boards\\Inc\n",[468,485,486,491],{"__ignoreMap":145},[471,487,488],{"class":473,"line":474},[471,489,490],{"class":477},"..\\applications\\Inc\n",[471,492,493],{"class":473,"line":393},[471,494,495],{"class":477},"..\\bsp\\boards\\Inc\n",[10,497,499],{"id":498},"arm-keil-mdk-6-基于vscode暂不推荐","Arm Keil MDK 6 (基于VScode)【暂不推荐】",[56,501,58],{"id":502},"简介-2",[14,504,505,508,511,518],{},[17,506,507],{},"优点：改善了MDK5的基本所有已知缺点，简直是开发者福音。",[17,509,510],{},"缺点：学习成本较高，没有一定的电脑常识驾驭不了。",[17,512,513,514,517],{},"目前暂时还",[23,515,516],{},"不是很推荐单独使用","，因为即便你会用，队友也不一定会用，这样工程无法互通。但如果你有能力，就是想用MDK6，那用也无妨，自己用着顺手为主。",[17,519,520,521,524],{},"但是",[23,522,523],{},"非常推荐配合使用","，MDK6配合MDK5一起使用。使用MDK5添加源文件，添加头文件等操作(不要忘记添加完源文件和头文件后，用mdk5编译一下)；使用MDK6转化刚才的mdk5工程，进行源码编辑，编译，debug等等操作。(这样无论是用mdk5还是mdk6的队友，都可以打开你的工程直接食用啦)（看不懂这段话问学长）",[56,526,528],{"id":527},"windows-linux","Windows && Linux",[72,530,531],{},[75,532,534],{"href":533},"/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng","ARM Keil MDK6使用教程",[10,536,538],{"id":537},"告别keil-mdk-vscodecmake环境部署非常推荐老鸟","告别Keil MDK : VScode+CMake环境部署【非常推荐老鸟】",[72,540,541],{},[23,542,543],{},"(开发起来目前感觉还是挺舒服的，日后电控组组长如果觉得好用，可以统一一下IDE)",[72,545,546],{},"主要现在有三个使用比较广的编译器.",[72,548,549],{},"armclang(AC6):编译巨快,开销巨小.(不论是编译,还是开销都非常优秀)",[72,551,552],{},"armcc(AC5):编译巨慢,开销很小.(仅仅只是开销小)",[72,554,555],{},"armgcc:编译较快,开销略大.(仅仅只是编译快)",[72,557,558],{},"所以说armgcc并没有那么大的优势，但是也可以接受。",[72,560,561],{},"主要是ARMCC和ARMCLANG是商用编译器，而ARMGCC是开源编译器，所以可以搭配CMake，Makefile等使用，可以更好管理项目，也可以支持全平台(Windows，Linux，MacOS等）",[72,563,564,565],{},"详细教程",[75,566,568],{"href":567},"/wiki/2025-07-18-linux-stm32-cmake-vscode-huan-jing-da-jian","STM32+CMake工程部署",[570,571,572],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":145,"searchDepth":393,"depth":393,"links":574},[575,576,577,578,579],{"id":12,"depth":268,"text":12},{"id":53,"depth":268,"text":54},{"id":213,"depth":268,"text":214},{"id":498,"depth":268,"text":499},{"id":537,"depth":268,"text":538},"2",2000000,"2023-12-10","2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","电控视觉环境搭建","md",true,false,null,{},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch2-armkeilmdk-arm-dan-pian-ji-huan-jing-da-jian",{"title":5,"description":145},"wiki/2023-12-10-电控视觉环境搭建/ch2-ARMKeilMDK(ARM单片机环境搭建)","NW44p6gACKpHp4A1EE3tdHukxYhS-c9xUL7R2fPDxUM",[596,602,603,609,615,621,627,633,639,645],{"path":597,"stem":598,"title":599,"date":582,"chapter":600,"chapterSort":601,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":588},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch1-c-c-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch1-C_C++环境搭建","C/C++环境搭建","1",1000000,{"path":591,"stem":593,"title":5,"date":582,"chapter":580,"chapterSort":581,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":588},{"path":604,"stem":605,"title":606,"date":582,"chapter":607,"chapterSort":608,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":588},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch3-linux-ji-ben-pei-zhi","wiki/2023-12-10-电控视觉环境搭建/ch3-Linux基本配置","Linux基本配置","3",3000000,{"path":610,"stem":611,"title":612,"date":582,"chapter":613,"chapterSort":614,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":588},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch4-cmake-gong-cheng-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch4-CMake工程搭建","CMake工程搭建","4",4000000,{"path":616,"stem":617,"title":618,"date":582,"chapter":619,"chapterSort":620,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":588},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch5-opencv-cuda-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch5-OpenCV__CUDA环境搭建","OpenCV\\_CUDA环境搭建","5",5000000,{"path":622,"stem":623,"title":624,"date":582,"chapter":625,"chapterSort":626,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":588},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch6-yolo-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch6-YOLO环境搭建","YOLO环境搭建","6",6000000,{"path":628,"stem":629,"title":630,"date":582,"chapter":631,"chapterSort":632,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":588},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch7-ros-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch7-ROS环境搭建","ROS环境搭建","7",7000000,{"path":634,"stem":635,"title":636,"date":582,"chapter":637,"chapterSort":638,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":588},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch8-QT环境搭建","QT环境搭建","8",8000000,{"path":640,"stem":641,"title":642,"date":582,"chapter":643,"chapterSort":644,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":588},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch9-docker-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch9-Docker环境搭建","Docker环境搭建","9",9000000,{"path":584,"stem":646,"title":585,"date":582,"chapter":589,"chapterSort":647,"docKey":583,"docRoot":584,"docTitle":585,"isWikiDoc":587,"isWikiIndex":587},"wiki/2023-12-10-电控视觉环境搭建/index",0,1778560330560]