从零开始基于STM32CubeIDE点亮第一颗LED灯

发布时间:2023-03-23  

本文带您从零开始30分钟内点亮第一颗LED灯,全程无需手写代码,操作简单,非常适合入门

说 明:

Proteus:是著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。本教程仅供学习交流使用,如需商业用途,请支持正版;

STM32CubeIDE:STM32CubeIDE是ST官方推出的一款基于STM32的开发工具,其整合了TrueStudio和STM32CubeMX的功能于一体;当前无需付费使用;

另外想说的是,仿真软件仅供入门学习使用,实际硬件工作远非Proteus所能完成的,建议大家选购适合自己的开发版对仿真的代码进行验证和进一步提升。


1、Proteus仿真软件安装

1.1 安装

软件版本:P8.9.sp0

仿真软件包只需要安装下面安装包里面的东西就可以了,里面包含安装软件和破解软件

链接:pan.baidu.com/s/1VbPrG1 提取码:ukvk

注意:

① 安装过程中最好全程断网,以免安装失败

②安装前先关闭所有杀毒软件(包括防火墙),防止误杀补丁,导致安装失败;

③Proteus8.9适用于Win7/8.1/10(32/64位)系统

首先,找到软件安装包

以管理员身份运行(A)

弹出对话框,点击“Next>

点击“I accept the terms of this agreement”小框,然后点击“Next>

选择“Use a locally installed license key”,点击“Next>

继续点击“Next>

弹出如下对话框,点击“Browse For Key File

找到“Crack”文件夹中的“Licence.lxk”文件单击,然后点击打开(我这里因为安装好了Proteus软件,所以文件会显示一个锁的样子,如果大家看到的是不一样的图标,没关系,只要文件名是“Licence.lxk”就可以了)

打开后如如下图,然后点击“Install

弹出对话框,点击“是(Y)

Licence安装成功后的效果图,然后点击“Close

第一次安装,这些选项都不管,直接点击“Next>

弹出如下对话框,点击选择“Typical

注意!!!:这里不建议大家选择“Custom”,去改变默认的安装路径,因为后面的破解软件生成的文件位于“Typical”安装目录(C盘)下,如果修改安装路径会导致安装不成功,网上很多人遇到过这种问题,我在安装过程中也碰到了这个问题,花了三四天的时间卸载、安装反复对比,才找到问题出在这里

进入到程序自动安装阶段,耐心等候一下......

安装完成后,弹出如下对话框,

注意:不要点“Run Pretous 8 Professional”,直接点击“Close


1.2 软件破解

右键桌面上的

图标,点击“打开文件所在的位置(I)”

拷贝到软件如下安装好的目录下


右键

“以管理员身份运行(A)”,会短暂的闪过右部分,不确定的话就多运行几次就好了

双击


“C:Program Files (x86)Labcenter ElectronicsProteus 8 ProfessionalMODELS”下生成的文件复制到“C:ProgramDataLabcenter ElectronicsProteus 8 ProfessionalMODELS”文件下

运行破解软件产生的模型dll文件

替换目录下的文件



打开软件,确认是否完成破解,第一次打开会弹出如下对话框,勾选“Don’t ask again”,然后点击“否(N)”,破解成功后第一次打开仿真软件在左下方可以看到软件注册信息和软件生效到期时间

打开软件提供的示例看下是否能运行

单击“File”,在弹出的下拉框中单击“Open Sample Project”

我这里打开一个基于8051单片机的计算器仿真工程

点击左下方

运行按钮,在计算器键盘上输入“1”加“2”等于“3”,没有问题


2、STM32CubeIDE开发软件安装

链接:pan.baidu.com/s/1xAhXPB 提取码:ekvc

双击打开压缩包,安装压缩文件里面的.exe文件

点击“Next>

点击“I Agree

默认安装在C盘,我这里选择安装在D盘,然后点击“Next>

保持默认点击“Install

正在安装......

一会儿弹出该对话框点击“安装(I)

继续等待安装......

进度条走完,点击“Next>

点击“Finish

双击

打开软件,这里要我们选择工作空间位置,默认在C

我选择D盘,然后点击“Launch

稍等片刻....

点击“No Thanks

进入到主界面


3、从零开始点亮LED灯

3.1 电路图

大家用我提供的“Blink.pdsprj”文件打开使用就行,(文件位于STM32CubeIDE软件网盘中)暂时不放太多的精力学怎么使用仿真软件,有兴趣的可以慢慢学,我也会针对该软件出一个简单的教程

注意:

①、蓝色灯(LED-BLUE)链接到PA0上,绿色灯(LED-GREEN)连接到PA1上,待会儿我们用的上;

②、“Blink.pdsprj”使用的是“proteus 8.9 sp0”版本建立的工程,如果大家安装有”pretous”软件,注意查看下是否是该版本之后的软件,否则可能会打不开。

点亮第一个LED仿真原理图

我这里列举了两种方式新建一个STM32CubeIDE工程,软件第一次使用会自动初始化环境并下载很多文件,请大家耐心等待下......

方法1:直接点击”Start new STM32 project”

方法2:点击”File->New->STM32 Project”

会弹出下图的芯片选型对话框

在搜索栏里面输入“STM32F103”(可以不区分大小写),根据提示的下拉芯片型号我们这里单击选择“STM32F103C6

选好芯片型号后如下图所示,然后单击下图“2”所示位置,点击“Next>

弹出对话框,在“Project Name:”栏输入工程名字“Blink”,其它选项保持默认,点击“Next>

保持默认,点击“Finish

稍等片刻......

进入到如下GPIO配置界面

接下来我们对LED灯的引脚进行配置,记得我们前面提到的原理图里面的两个LED分别位于“PA0”和“PA1”引脚上,我们这里将“PA0”和“PA1”配置为输出(OutPut),单击“PA0”,在弹出的下拉框点击“GPIO_Output”,配置好的效果如右图所示,在芯片引脚旁边会显示“GPIO_Output”,同时引脚变为绿色,上面还有个小图钉,同理可以配置“PA1

PA0”和“PA1”两个引脚都配置好的效果如下图所示

引脚配好后,接下来按“Ctl + S”或者左上角的

保存图标

弹出如下对话框,问我们是否生成代码,点击“Yes

还会弹出一个对话框,点击“Yes”(这样生成代码后会自动打开主函数代码)

出现如下画面,稍等片刻,等进度条走完......

然后在“main.c”中找到“while(1)”代码,将下面的代码复制粘贴进去,

代码实现的功能:两颗LED灯循环翻转亮灭操作

HAL_Delay(500); 
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0); 
HAL_Delay(500); 
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);

设置一下下软件,使其生成hex文件(待会儿仿真用的到),右键“Blink”工程,在弹出的下拉菜单中点击“Properties

弹出如下对话框,找到”C/C++ Build”下的”Settings”并单击,然后在右边找到”Tool Settings”单击,

再点击”MCU Post build outputs”,再勾选右边的”Convert to Intel Hex file (-O ihex)”,最后点击”Apply and Close”.

点击

Build All”对代码进行编译,也可以使用“Ctl+B”,在终端“Console”下面可以看到正在编译的情况

编译完成后,提示“Build Finished. 0 errors, 0 warnings. (took 4s.439ms)”,同时可以看到生成了“Blink.hex”文件

接下来双击打开

仿真文件,然后鼠标放在下图红色框上双击

在弹出的对话框中,点击“Program File:”右边的小文件夹图标

找到Blink工程下的”Blink.hex”文件选中,然后打开(文件位于工程“Debug”文件夹下),再点击“OK”按钮

然后点击运行

按钮,进行代码仿真

运行的结果可以看到LED灯交替闪烁


4、STM32IDE工具改造

4.1 代码自动补齐功能

方法一:

STM32CubeIDE集成开发环境没有代码提示功能对于我们用习惯了Vscode的人来说非常不方便,因为它是基于“Eclipse”开源软件开发,所以可以安装插件来实现这些功能

看了网上很多教程,最后找到一个很方便操作的,直接将文件复制到安装目录中就可以使用

原文地址:blog.csdn.net/weixin_45 非常感谢这位大神

打开文件压缩包

把里面的文件复制到“D:STSTM32CubeIDE_1.4.0STM32CubeIDEplugins”目录下,(根据个人安装的目录进行)

复制进去后的效果

弹出对话框,执行“替换目标中的文件(R)”操作

我们再次打开软件,输入代码就有了提示补全功能了

方法二

考虑到STM32CubeIDE软件在不断更新,网上另外一位大神的方法也在这里贴出来,只是操作繁琐了一点点

blog.csdn.net/nopear6/a


4.2 主题配置

我们平常用的”Notepad++”和“Vscode”都可以选择代码颜色主题,“STM32CubeIDE”也可以通过安装插件来更改主题,点击“Help”,再下拉栏中选择“Eclipse Maketplace...

在弹出的对话框中选择“Popular”,然后点击“Install”,稍等片刻...出

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。   3.1位控法   这是一种比较笨但又最易理解的方法,采用顺序程序......
    片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。 3.1位控法 这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的......
    绕组接线撞焊法 46、两灯循环点亮 47、双联......
    DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B ;完成第一次循环点亮,延时约0.25秒 AJMP START ;反复循环 ;延时子程序......
    电平、P1.1为低电平时点亮全部LED;当P1.0、P1.1都为高电平时,LED按四个一组,轮流反复点亮;P1.0、P1.1、P1.2都为高电平时,8LED逐一点亮并反复循环。 二、设计目的1. 进一......
    灯组成,要求单片机并行端口控制LED灯按照4,5→3,6→2,7→1,8的顺序循环点亮,每个状态停留1秒,循环不止。 硬件电路 元件清单 C语言程序 #includevoid delay1s......
    →5,6→7,8→1→2→3→4→5→6→7→8的顺序循环点亮,每个状态停留1秒,循环不止。请用单片机设计其控制系统并调试运行。 硬件图: 元件清单: C语言程序: #include......
    ,#11111011BLCALL DELAYMOV P1,#11111101BLCALL DELAYMOV P1,#11111110BLCALL DELAYMOV P1,#11111111B;完成第一次循环点亮,延时约0.25秒......
    的目的是使8LED循环点亮,还有一个状态是都不亮,我的LED是搭在P1口上,给低电平就亮。总的现象就是先全部亮一次,然后从左到右依次亮,然后全部灭掉,然后从右到左依次亮一遍,然后灭掉,然后就这样循环......
    S3C2440中的GPIO(2024-07-17)
    led.o  start.o -o led.elf    修改为    arm-linux-ld -Ttext 0 start.o led.o -o led.elf。 然后重新编译后程序正确。 6.循环点亮......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>