版权声明:本文为博主原创文章,转载请附上原文出处链接。
文章目录
今天介绍下STC32G12K128开发板如何搭建开发环境。

Keil C251是美国Keil公司(该公司2005年被ARM公司收购)出品的针对251微控制器系列兼容单片机C语言软件开发系统。
与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C251是支持251微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。
扩展:Keil公司开发的ARM开发工具MDK(Microcontroller Development Kit),是用来开发基于ARM核的系列微控制器的嵌入式应用程序。
本文档中使用的Keil C251版本是5.60,打开后的主界面如图所示。

开发板配套资料包里面已经下载好了Keil C251安装文件,安装文件的位置在开发板资料包的“…\第2部分:开发软件工具\ 1 - KEIL C251安装软件”目录下。
1.解压压缩文件c251v560,双击打开 “c251v560.exe”,弹出 Keil C251 V5.60的安装向导,单击【Next】,如下图所示。

2.勾选【I agree to …】,然后点击【Next】,如下图所示。

3.选择安装路径,如下图所示。
此处,可以根据自己的需要选择安装路径,本文档设置的安装路径是C:\Keil_v5,即安装在C盘。(也可选择安装路径是D:\Keil_v5)

☆注:用户可安装在默认路径下,可以省去一些不必要的麻烦。如果用户安装在其他路径,要注意路径不宜过深,并且路径中不要出现带有中文的文件夹。
4.根据提示填入相关用户信息,然后点击【Next】, 如下图所示。

☆说明:未注册版本有2K的代码限制,当超过2K时,是无法编译工程的。
5.Keil C251开始安装,等待Keil C251安装完成,如下图所示。

6.点击【Finish】完成安装,如下图所示。

开发板上设计了USB转TTL电路,使用的USB转串口芯片是CH340,使用前需要安装驱动。
☆说明:如果计算机上已经安装了CH340的驱动,则无需再安装,可直接跳过此步骤。
CH340和CH341的驱动一样,开发板配套资料包里面已经下载好了驱动,驱动的位置在开发板资料包的“…\第2部分:开发软件工具\ 3 - CH340驱动程序(支持WIN10)” 目录下。
1.解压压缩文件ch341ser,双击打开 “ch341ser.exe”,出现下面界面,点击安装。

☆说明:安装USB转串口驱动失败的处理方法。
用Type-C USB数据线将开发板J1连接到电脑的USB口,并将开发板上的电源开关拨到“ON”的位置,确认开发板的电源指示灯已经点亮后,再安装USB转串口驱动即可。
2.查看CH340的端口号:
需要使用USB数据线连接电脑和开发板并打开开发板上的电源开关后才能查看。
选中“我的电脑”后右键打开属性窗口,再打开设备管理器,在设备管理器中查看CH340的端口号,如下图所示。

STC-ISP-15xx是 STC(宏晶科技)针对STC单片机提供的专用的ISP下载软件, STC-ISP-15xx使用简便,并且集成了众多的实用工具,如串口调试助手、波特率和定时器计算工具等,现已被广泛使用。该软件版本会在STC官网上不断更新,用户后续可查看并下载最新版本,STC官网:http://www.stcmcudata.com/
开发板配套资料包里面已经下载好了stc-isp-15xx-v6.90D安装文件,安装文件的位置在开发板资料包的位于“…\第2部分:开发软件工具\ 2 - STC-ISP下载软件”目录下。
STC-ISP-15xx是绿色软件,无需安装,解压后即可使用,但是我们需要使用STC-ISP-15xx软件将STC器件/头文件和仿真驱动添加到keil,否则,keil里面是找不到对应的芯片的,操作步骤如下。


☆说明:无论开发板选择的是不是仿真型芯片,都需要进行此步操作。

在编写和调试程序的时候,我们经常会遇到需要注释代码块的情况(多行代码),这里我们给出两种常用的批量注释方法。
1.第一种方法:使用菜单栏中的快捷按钮
批量注释方法:先选中需要注释的代码,然后点击下图中红框内的按钮即可批量注释代码。

取消批量注释方法:先选中需要取消注释的代码,然后点击下图中红框内的按钮即可批量取消代码注释。

2.第二种方法:使用条件编译
下图中使用条件编译命令“#if…endif”注释了36、37、38行这三行代码,如果要取消注释,把0改为1即可,这种方法简单快捷,在调试中很实用。

浏览程序的时候,经常需要返回到上次浏览的位置或者前进到上次返回的位置,这时,可以使用下图所示的快捷按键。

开发和调试程序时,经常需要查看一些变量或函数的定义,这时可以按照下图所示的方法跳转到变量或函数定义的位置,查看变量或函数。
☆说明:必须编译成功后才可以跳转。

开发和调试程序时,查找功能是必不可少的,keil C251中使用查找功能的步骤如下(以在整个工程中查找为例说明)。
1.选中待查找的内容(也可以打开查找窗口后手动输入查找内容),然后点击菜单栏中的“Edit”,在弹出的下拉菜单中点击“Find in files”打开查找窗口,如下图所示。(也可键盘操作快捷键CTrl+F)

2.设置查找选项(这里设置:在文件中查找,查找条件是全文匹配,查找范围为整个工程),之后点击“Find All”按钮,如下图所示。

3.查看结果:Keil信息窗口中会显示查找的结果,如下图所示。

map文件将单片机存储器的使用情况以及变量的信息展示给开发人员,通过分析map文件,开发人员可以了解往往可帮忙解决许多棘手的问题。map文件快递打开方法如下图所示。
☆说明:工程编译成功后,才会生成map文件,因此工程必须编译后才能打开map文件。

1.现象:打开工程时,编译按钮等均无法点击,出现下图所示界面。

2.原因:使用Keil C51打开了Keil C251的工程。
3.解决方法:安装Keil C251软件。
☆注:我们电脑里面可能也安装了用于开发ARM 的keil MDK,如果用MDK打开了Keil C251的工程,也会导致工程无法编译。
1.现象:Keil C251编译工程,出现如下图所示信息。

2.原因:Keil C251没有注册,未注册版本有代码限制,所以工程较大超出2K后编译会报错。
3.解决方法: 注册Keil C251。
当我们在keil中选中函数或者变量右键跳转到定义的时候,弹出错误提示“无可用的浏览信息”,从而无法跳转,如下图所示。

原因主要有以下两个方面:
1.工程没有编译或者程序中有错误,没有编译成功:这种情况下,编译工程成功后,即可跳转到定义。
2.Browse information没有勾选:点击魔术棒,,如下图所示。

在弹出的对话框中切换到output选项卡,之后勾选“Browse information”选项,勾选后需要重新编译工程。

我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
了解Rails缓存如何工作的人可以真正帮助我。这是嵌套在Rails::Initializer.runblock中的代码:config.after_initializedoSomeClass.const_set'SOME_CONST','SOME_VAL'end现在,如果我运行script/server并发出请求,一切都很好。然而,在我的Rails应用程序的第二个请求中,一切都因单元化常量错误而变得糟糕。在生产模式下,我可以成功发出第二个请求,这意味着常量仍然存在。我已通过将以上内容更改为以下内容来解决问题:config.after_initializedorequire'some_cl
我有一个使用PDFKit呈现网页的pdf版本的Rails应用程序。我使用Thin作为开发服务器。问题是当我处于开发模式时。当我使用“bundleexecrailss”启动我的服务器并尝试呈现任何PDF时,整个过程会陷入僵局,因为当您呈现PDF时,会向服务器请求一些额外的资源,如图像和css,看起来只有一个线程.如何配置Rails开发服务器以运行多个工作线程?非常感谢。 最佳答案 我找到的最简单的解决方案是unicorn.geminstallunicorn创建一个unicorn.conf:worker_processes3然后使用它: