「开源系统」离职一个月肝了一个博客系统,springboot+thymeleaf+freemarker+amazeui实现

介绍语

本号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享。文章会不断更新,欢迎码友关注点赞收藏转发!

望各位码友点击关注,冲1000粉。后面会录制一些视频教程,图文和视频结合,比如:图书介绍网站系统、抢购系统、大数据中台系统等。技术才是程序猿的最爱,码友们冲啊

如果码友觉得代码太长,可以从头到尾快速扫射一遍,了解大概即可。觉得有用后再转发收藏,以备不时之需。

正文:

从8月中旬离职后,每天在boss投递十几个简历,一个月了才两个面试机会,焦虑的心情难受啊。每天找工作外还继续开发之前未完成的个人博客系统,终于差不多一个月开发了1.0版本。为了不让自己那么焦虑每天编码2-5个小时,上周个人博客系统上腾讯云服务器,今天域名审批通过,备案还得等待。

系统介绍

今天分享的个人博客系统,主要功能有后台文章管理、分类管理、静态页面管理、系统设置、帮组页设置,后续继续完善一些其它功能;前台网站是一个纯静态页面网站,有后台生成静态页面到nginx的www目录,整体功能思维导图如下:

功能思维导图

 

前台博客页面展示

后台管理页面展示

系统源码

项目结构

访问地址

博客前台网站地址: http://www.javalaoniu.com/

博客后台管理地址: http://myblog-admin.javalaoniu.com/page/admin-index.html

后台管理地址需要登录的话请使用该账号登录( javalaoniu/java123456),请不要进行删除操作,谢谢。

源码获取

如果您想获取该源码,请扫码进群免费获取,备注blog,如果群二维码失效请添加群主拉进群。
     

该源码可用于

  • 计算机毕业设计;

  • 学习研究;

  • 个人博客;

  • 其它商业或个人用途;

购买服务

如果您需要下面的服务可以付费99元,付费请直接微信群主即可,谢谢您的支持

  • 该博客程序网站部署,全程免费部署(代购买服务器、代购买域名、代网站备案、软件安装、网站部署等)一条龙服务;

  • 该博客系统一年内使用指导,技术支持(更新新功能、修复bug);

  • 该博客系统一个月内源码解答,指导,包教包会;

鄙人编码十年多,在项目中也积累了一些工具类,很多工具类在每个项目都有在用,很实用。大部分是鄙人封装的,有些工具类是同事封装的,有些工具类已经不记得是ctrl+c的还是自己封装的了,现在有空就会总结项目中大部分的工具类,分享给各位码友。如果文章中涉及的内容有侵权行为请通知鄙人处理。

计划是先把工具类整理出来,正所谓工欲善其事,必先利其器。项目中不管是普通单体项目还是多模块maven项目或是分布式微服务,一部分功能模块都是可以重用的,工具类模块就是其中之一。

本文转载于网络 如有侵权请联系删除

相关文章

  • 「泰哥-PUPU四周年限定」数字藏品发售中!

    IP:PUPUALIENS藏品形式:3D发行数量:199份藏品价格:66元发行方:QTX潮玩展扫描上图二维码 /点击左下角“阅读原文”前往购买页*购买须知:该数字藏品不与实体潮玩绑定销售,价格仅为「泰哥-PUPU四周年限定」数字藏品价格。

  • SAP WE19复制一个IDoc产生一个新的IDoc

    SAPWE19复制一个IDoc产生一个新的IDoc执行事务代码WE19,进入如下的TestToolforIDocProcessing界面,输入一个existingIDoc号码200620409,然后执行,进入如下界面,此时可以对相关的segment里的数据进行修改与设置。最后根据ExistingIDoc是inbound的还是outbound的,做相关处理:-如果是inbound的IDoc(从外部系统传入SAP系统),则点击右上角的StandardInbound按钮进行POST;-如果是outbound的IDoc(从SAP系统发往外部系统),则点击右上角的TestStandardoutboundprocessing按钮进行处理,如下图示:复制的existing的IDoc#200620409是一个outbound的IDoc,所以点击TestStandardoutboundprocessing按钮进行Post,回车,回车,SAP系统产生了新的IDoc号码200629076,并POST成功。-完-写于2022-6-8

  • IOS 扫二维码

    注意:本篇文章采用了IOS7的新特性来扫二维码,所以系统支持要IOS7以上,如果要兼容IOS7之前的版本,自行找库来支持。为了方便,我把扫二维码简单封装到了一个UIView中,用代理的方式返回值在使用之前,应当为工程添加AVFoundation.framework完整的实现代码头文件// //HwcScanQRView.h //HwcAnimationExample // //Createdbyhuangwenchenon15/1/7. //Copyright(c)2015年huangwenchen.Allrightsreserved. // import<UIKit/UIKit.h> @protocolHwcScanQRDelegate<NSObject> /*! @discussionDelegatemethodwhenscanQRsuccessed @paramQRContentScanresult @returnVoid */ -(void)DidGetScanWithResult:(NSString)QRContent; /! @discussi

  • 如何符号化Objective-C调用栈如何符号化Objective-C调用栈

    本文讲述的是符号化“残破”的栈,如果你有一个系统生成的crash日志,请交给Xcode自带的symbolicatecrash脚本。Symbolicatecrash脚本的核心也是通过atos功能逐行符号化,但人家封装好了,比自己手动一行一行做快很多。示例栈:0XSQSymbolicateDemo0x00000001000ba530XSQSymbolicateDemo+25904 1XSQSymbolicateDemo0x00000001000ba4f0XSQSymbolicateDemo+25840 2XSQSymbolicateDemo0x00000001000ba4bcXSQSymbolicateDemo+25788 3XSQSymbolicateDemo0x00000001000ba478XSQSymbolicateDemo+25720 4UIKit0x00000001966870ec<redacted>+96 5UIKit0x000000019668706c<redacted>+80 6UIKit0x00000001966715e0<redacted

  • ​LeetCode刷题实战325:和等于 k 的最长子数组长度

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选!今天和大家聊的问题叫做和等于k的最长子数组长度,我们先来看题面:https://leetcode-cn.com/problems/maximum-size-subarray-sum-equals-k/Givenanarraynumsandatargetvaluek,findthemaximumlengthofasubarraythatsumstok.Ifthereisn'tone,return0instead. Note: Thesumoftheentirenumsarrayisguaranteedtofitwithinthe32-bitsignedintegerrange.给定一个数组nums和一个目标值k,找到和等于k的最长子数组长度。如果不存在任意一个符合要求的子数组,则返回0。注意:nums数组的总和是一定在32位有符号整数范围之内的。示例示例1: 输入:nums=[1,-1,5

  • 港科大HydroMet团队: 一年可能不止“四季”,东亚季风年周期新认识!

    Source:Pixabay,Himalayas青藏高原"大地形"塑造了东亚独特的季风气候 “香港科技大学陆萌茜老师团队(陆老师、博士生代伦、博士生郑达勋),以自映射网络(Self-organizingmap)为基础,构建了一种东亚季风年周期划分策略,深化对其多项特征的了解与讨论。并在对梅雨季与秋季肇始期预测问题,提出了新的可能性。 ”东亚季风是最全球最复杂的季风系统之一。自上世纪至今,水文气象领域内对对于东亚季风部分或单一季风阶段已有相当丰富的文献积累。具体而言,其标志性特征可总结为地区性大气环流的季节性反转以及与之相伴的干湿季节交替。在已有研究中,东亚季风阶段的定义通常以单一或多个环境变量(例如,风速、雨量等)的经验标准定义某个具体阶段。陆老师团队认为,季风具有强周期性特点,在时间尺度上应强调其连续性,由此展现相对完整的季风年周期循环特征。 因此,陆老师团队将自映射网络用于850hPa风场数据中,对风场空间结构特征进行聚类分析,得到图-(1)中八个重要阶段。具体而言,图(a)-(c)中展示初冬、隆冬、冬末三个阶段。以上三个阶段,研究范围内普遍少雨,北部西北风盛行

  • MySQL深入学习第十九篇-为什么我只查一行的语句,也执行这么慢?

    一般情况下,如果我跟你说查询性能优化,你首先会想到一些复杂的语句,想到查询需要返回大量的数据。但有些情况下,“查一行”,也会执行得特别慢。今天,我就跟你聊聊这个有趣的话题,看看什么情况下,会出现这个现象。需要说明的是,如果MySQL数据库本身就有很大的压力,导致数据库服务器CPU占用率很高或IO利用率很高,这种情况下所有语句的执行都有可能变慢,不属于我们今天的讨论范围。为了便于描述,我还是构造一个表,基于这个表来说明今天的问题。这个表有两个字段id和c,并且我在里面插入了10万行记录。CREATETABLE`t`( `id`int(11)NOTNULL, `c`int(11)DEFAULTNULL, PRIMARYKEY(`id`) )ENGINE=InnoDB; delimiter;; createprocedureidata() begin declareiint; seti=1; while(i<=100000)do insertintotvalues(i,i); seti=i+1; endwhile; end;; delimiter; callidata();复制接下

  • 【STM32】TIM---基本定时器

    Author:AXYZdong自动化专业工科男 有一点思考,有一点想法,有一点理性! 定个小小目标,努力成为习惯!在最美的年华遇见更好的自己! CSDN@AXYZdong,CSDN首发,AXYZdong原创 唯一博客更新的地址为:?AXYZdong的博客? 文章目录一、TIM简介二、基本定时器三、定时器周期计算四、初始化结构体五、基本定时器实验编程思路time.htime.cmain.c六、总结开发板:stm32f407VET6开发环境:keil5MDK插播一条反爬虫信息,读者可以忽略: 一、TIM简介定时器最基本功能:定时定时发送USART数据定时采集AD数据等定时器与GPIO结合测量输入信号脉冲宽度产生输出波形等 ▲各个定时器的特性二、基本定时器基本定时器:TIM6和TIM7,基本功能完全一样,但所占资源彼此完全独立。 ▲基本定时器的功能框图基本定时器时钟只能来自内部时钟基本定时器的内部时钟(CK_INT)频率为84MHz基本定时器还专门用于DAC转换触发只要设置CK_PSC和TIMx_ARR这两个寄存器的值就可以控制事件生成的时间 三、定时器周期计算//定时器时钟源TIMx

  • @陈同学的专属Python教程之函数

    函数定义你可以定义一个由自己想要功能的函数,以下是简单的规则:复制例子defhello(var):复制形参与实参形参:形式上的参数,只是指代某事,出现在函数定义上复制引用传递【可更改(mutable)】#!/usr/bin/python3复制值传递【不可更改(immutable)对象】#!/usr/bin/python3复制参数必需参数defhello(var):复制关键字参数复制默认参数#可写函数说明复制推荐使用关键字参数调用,因为比较清晰#可写函数说明复制不定长参数你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。#加了星号*的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。复制#如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量。复制#加了两个星号**的参数会以字典复制#声明函数时,参数中星号*复制匿名函数没有名字,函数调用时无法使用名字,基本在哪里定义在哪里调用 python使用lambda来创建匿名函数。 所谓匿名,意即不再使用def语句这样标准的形式定义一个函数。 编程

  • android: API24 及以上版本调用系统相机时报:FileUriExposedException 的解决

    写在前面:这个公众号也维护了有一小段时间了,虽然因为个人工作原因最近更新频率并不是很高,但我一定会坚持更新下去。另外,公众号发文的时候必须要加一张图作为封面,我一开始总想着找一些和文章内容相关的图片,但是不好找啊,所以,我决定,以后就找一些好看的但不一定和文章相关的图作为封面吧。这一次的封面是我家乡的蒙山鹰窝峰,上中学那会儿一直想要一张这个图的明信片,后来也不知道放哪里了。。。还有,因为公众号发文排版的问题,可能在手机上看文章内容并不美观,那么可以点击文章左下角的“阅读原文”查看原文内容。最近除了忙工作,还在搜集关于金三角的资料,之后的某一天会发一篇关于“金山角”的文章,敬请期待。一、问题现象某一天我厂的测试小妹说,在我们APP中拍照的时候崩溃了,然后我去问清了测试的手机型号,系统版本,还有当时的操作步骤,再然后就果然崩溃了。具体如下:FileUriExposedException错误截图二、问题原因为啥会出现这个崩溃信息呢? 那是因为,在调用系统相机的时候我们使用Uri.fromUri(file)来获取URI并传递给调用系统相机的intent,代码如下:Intentintent=ne

  • 实用算法系列之RT-Thread链表堆管理器

    [导读]前文描述了栈的基本概念,本文来聊聊堆是怎么会事儿。RT-Thread在社区广受欢迎,阅读了其内核代码,实现了堆的管理,代码设计很清晰,可读性很好。故一方面了解RT-Thread内核实现,一方面可以弄清楚其堆的内部实现。将学习体会记录分享,希望对于堆的理解及实现有一个更深入的认知。注,文中代码分析基于rt-thread-v4.0.2版本。什么是堆?C语言堆是由malloc(),calloc(),realloc()等函数动态获取内存的一种机制。使用完成后,由程序员调用free()等函数进行释放。使用时,需要包含stdlib.h头文件。 C++预言的堆管理则是使用new操作符向堆管理器申请动态内存分配,使用delete操作符将使用完毕内存的释放给堆管理器。 注:本文只描述C的堆管理器实现相关内容。以C语言为例,将上面的描述,翻译成一个图:要动态管理一片内存,且需要动态分配释放,这样一个需求。很显然C语言需要将动态内存区抽象描述起来并实现动态管理。事实上,C语言中堆管理器其本质是利用数据结构将堆区抽象描述,所需要描述的方面:可用于分配的内存正在使用的内存块释放掉的内存块再利用相应算法对

  • DLink RCE漏洞CVE-2019-17621分析

    上一篇文章分了一下ARM系统的路由器漏洞,本次打算尝试一下MIPS系统,于是选了最近DLink路由器的漏洞CVE-2019-17621作为目标。同样一路走来各种踩坑不断,“纸上得来终觉浅,绝知此事要躬行”,对整个过程做一下梳理。1、环境搭建运行环境安装配置之前须了解你所使用的Linux系统的版本以及Qemu的版本,因为这直接影响着你后续选择安装各种依赖包、mipsqemu镜像等的版本,各种版本都对应上,最终系统才能正确运行。本次漏洞分析的基础环境为前期的Ubuntu18.04虚拟机和基于qemu-4.0.0源码编译安装的Qemu运行环境:从站点https://people.debian.org/~aurel32/qemu/mips/下载debianmipsqemu镜像,由于虚拟机是Ubuntulinux,下载debian_squeeze_mips_standard.qcow2和vmlinux-2.6.32-5-4kc-malta即可:MIPS系统网络配置使用QEMU模拟运行MIPS系统,需要将ubuntu虚拟机设置成桥接,这样以来ubuntu系统就可以和QEMU虚拟机进行通信和数据传输

  • [性能测试实战30讲」之问题问答整理十五

    思考题看完了今天的文章你不妨说下为什么要先有全局监控,再有定向监控?以及我为什么不建议一开始就上代码级的监控工具呢?读者:思考题 为什么要先有全局监控,再有定向监控:因为首先要从大方向上,找到瓶颈在哪里;再进入细节去分析,才比较有效率 为什么不建议一开始就上代码级的监控工具呢:一上来就上代码级别的监控,一方面配置这些监控太耗时间,另一方面可能得到的数据,也用不上 另外,我们公司用的是DataDog,可以给每个机器单独的top/ps命令的记录,我们公司从框架级别支持收集一些基本的数据(比如,一个GRPC耗时多久),把AWS的相关数据也都集中在这里,还可以设置起来对应的报警;感觉颇为好用作者回复:挺好。工具可以让我们工作更有效率,原理让我们理解看哪些数据。读者:老师,请问您是如何把自己的经验沉淀成一套理论方法,其中的过程有什么方法吗?我在学一些东西的时候,经常是一些散乱的知识点,如何把它们形成一套理论方法呢?作者回复:这跟上学的时候学知识点是一样的道理。 像数学,一开始只学加减乘除,再学各种公式,再到高等数学。这些都只是基础,而应用数学就是融会贯通使用了。 IT的知识首先肯定是散乱的知

  • 正则表达式-锚点及模式修饰符

    上一篇入门介绍了匹配单个字符的元字符和计数元字符,最后的练习里我们使用了括号,这也是正则里的元字符之一,是用来限定匹配子结构和捕获用的,有些不太好分类但是我们常用的控制结构,我们将他们放到其他元字符中。 其他元字符来看我们常用的一些:元字符名称含义|alternation匹配分隔的表达式()括号限定结构的范围,分组,捕获计数(?:……)限定范围和分组,但不增加捕获计数\1,\2反向引用匹配之前第一、第二括号内表达式匹配的内容(?<Name>)命名捕获可以使用名称来获取分组内容group(Name),而不是group(1)方式(?>)固化分组不会交还已经匹配的内容(?(if-exp)then-expelse-exp)条件判断竖线是选择元字符,可以理解成程序中的或,左右两边可以是普通的正则表达式,譬如说前面的字符组[1-5],跟1|2|3|4|5在语义上是等价的,不过我们在实现的时候能用字符组还是用字符组,因为多选结构正则引擎在没有优化的情况是会一个个匹配然后回溯的,效率上不如字符组 括号可以用来限定范围,分组,捕获计数,这里范围表示可以将括号内的正则看做一个整体,计数元

  • 在Linux中vim的用法

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此你可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,你将在Linux的世界里畅行无阻。1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:命令行模式commandmode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insertmode下,或者到lastlinemode。插入模式(Insertmode)只有在Insertmode下,才可以做文字输入,按「ESC」键可回到命令行模式。底行模式(lastlinemode)将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。不过一般我们在使用时把vi简化成两个模式,就是将底行模式(lastlinemode)也算入命令行模式comm

  • 全球机器人热,8月机器人投资高达4.3亿美元

    8月是机器人创业投资的又一个高峰期,一共有18总投资交易达成,接近4.3亿美元(今年的总投资已超过10亿美元)!此外,8月份还有4宗收购,总价也高达10亿美元。__投资:__[请注意,本月获得投资的三家公司为固态激光雷达技术的设计和制造商,他们是Velodyne,Innoviz和Quanergy。]1. Airobotics,以色列无人机初创企业,专注于提供工业用多用途无人机解决方案,获得了2250万美元投资(2月)。本轮投资由CRV领投,包括BlueRunVentures、NoamBardin、RichardWooldridge和UpWestLabs。该公司目前拥有70名员工。2. BlueOceanRobotics,丹麦的风险投资及加速器,近日宣布有一匿名私人投资者购买了其6.7%的股份,作价150万美元。为了保持其持续快速增长,BlueOcean计划出售超过33%的股份(从2013年的3个人增长到目前约110人,再加上11个国家的21个联营公司)。3. DroneDeploy,三藩市的一家初创企业,在B轮融资中获得了2000万美元,主要用于(1)拓展无人机数据管理平台,(2)招聘

  • 汇思学 18国庆 数论

          数论 1.快速幂 typedeflonglongLL; LLqpow(inta,intb){//快速幂 LLres=1; while(b){ if(b&1)res=res*a%p; a=a*a%p; b>>=1; } returnres; } LLmul(inta,intb){//快速乘 LLres=0; while(b){ if(b&1)res=(res+a)%p; a=(a+a)%p; b>>=1; } returnres; }复制   2.逆元(1)费马小定理求逆元   若p是质数,且p不是a的约数   根据费马小定理有:ap-1 ≡1(modp)   所以a的逆元x=ap-2 (2)欧拉定理求逆元   若a与p互质   根据欧拉定理有:aφ(p)=1(modp)   所以a的逆元x=aφ(p)-1 3.最大公约数gcd(1)从大到小枚举(2)分解质因数求解(3)更相减损术gcd(a,b)=gcd(a-b,b)(4)辗转相除法gcd(a,b)=gca(a%b,b) intgcd(intx,inty)

  • 玩玩iOS模拟器

    这篇文章主要来介绍iOS模拟器的几个有趣的小功能。 iOS模拟器,顾名思义就是模拟iOS设备。对于苦逼的程序猿来说,一个iOS模拟器大部分时候可以顶的上十几台真机。 打开Xcode,在菜单里选择“Xcode->OpenDeveloperTool->iOSSimulator”打开模拟器。或者可以新建了一个SingleView的项目,直接运行程序,模拟器会自动打开。 图1.iOS模拟器 选中模拟器,看它的菜单栏“Hardware”,里面有好几个项目,这篇文章主要就是讲这些东西。 Device 这里会显示你目前拥有的iOS设备模拟器。如果有不同的SDK,则会对应不同的设备模拟器。 图2.选择不同类型的iOS模拟器 自从Xcode升级到6以后,设备在系统里的对应位置变得十分复杂,对于开发来说简直就是到了惨绝人寰的地步。想要把一个文件放到对应设备的文件夹下巨麻烦,啰嗦得我都不想说了。 想要下载更多的模拟器,可以打开Xcode,在它的菜单“Xcode->Preferences”里,打开“Downloads”选项卡,则有不同的模拟器可以下载。在这里还可以下载不同的开发者文档。如果下

  • 泛型支持的几种约束类型

    约束 说明 whereT:struct 对于结构约束,类型T必须是值类型 whereT:class 类约束指定类型T必须是引用类型 whereT:IFoo 指定类型T必须实现接口IFoo whereT:Foo 指定类型T必须派生自基类Foo whereT:new() 这是一个构造函数约束,指定类型T必须有一个默认构造函数 whereT1:T2 这个约束也可以指定,类型T1派生自泛型类型T2   注意:只能为默认构造函数定义构造函数约束,不能为其他构造函数定义构造函数约束。 使用泛型类型还可以合并多个约束。whereT:IFoo,new()约束和MyClass<T>声明指定,类型T必须实现IFoo接口,且必须有一个默认构造函数。 注意:在C#中,where子句的一个重要限制是,不能定义必须由泛型类型实现的运算符。运算符不能再接口中定义。在where子句中,指定定义基类、接口和默认构造函数。

  • 洛谷5024 保卫王国 (动态dp)

    qwq非正解。 但是能跑过。 1e5log方还是很稳的啊 首先,考虑最普通的\(dp\) 令\(dp1[x][0]表示不选这个点,dp1[x][1]表示选这个点的最大最小花费\) 那么 \(dp1[x][0]=\sumdp[p][1]\) \(dp1[x][1]=\summin(dp[p][1],dp[p][0])+val[x]\) 根据套路,我们要树链剖分+改变\(dp\)数组,我们令\(f[x]\)表示忽略重儿子的\(dp\)值,用\(g\)表示正常的\(dp\)值的话 那么不难发现转移矩阵应该是 {g[p][0],g[p][1]} 复制 乘上 inff[x][1] f[x][0]f[x][1] 复制 等于 g[x][0]g[x][1] 复制 qwq 然后其他的就是动态dp的部分了 但是需要注意的一个地方是。 你如果通过写一个类似的\(modify\) voidmodify(intx,Juy) { update(1,1,n,newnum[x],y); for(intnow=top[x];now!=1;now=top[now]) { intfaa=fa[now]; Ju

  • Keil MDK从未有过的详细使用讲解

    转自博客:http://blog.csdn.net/zhzht19861011/article/details/5846510 这博主关于MDK的使用的文章,写的得TM的好 TM的实用! 真心收藏!        熟悉KeilC51的朋友对于KeilMDK上手应该比较容易,毕竟界面是很像的。但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的。本文以MDKV4.03为例,详细的写一下MDK的设置、界面、工具。可能会有些杂乱,但我想所涉及的东西都是最常用的;可能不是那么的严谨清晰,我想谁也没把我期望成专家!哈,有问题欢迎留言。正式开始。    首先启动MDK.当然要先安装好MDK,如果找不到在哪里下载,可以翻翻我以前的博文。启动后的MDK界面如图1所示。   图1MDK界面 第二.新建一个工程。 单击Project->NewµVisionProject...菜单项,µVision4将打开一个标准对话框,见图2,输入希望新建工程

相关推荐

推荐阅读