常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

这里简要介绍下STM32CubeMX,这是个不大的免费图形化编程程序,它可以在图形化的基础上,生成初始化代码,提供项目给不同的IDE软件,包括但不限于IAR和Keil。在IAR或者Keil中打开初始化程序进行编辑,然后仿真下载程序,也就是俗称的烧写程序到芯片图形化编程真的很happy啊。

如果你能点开这篇文章,那你一定对单片机一无所知。

所谓单片机就是单片机。 它可以做一些简单的控制、显示、计算等,还可以和一些传感器、蓝牙、电机等模块一起做很多事情。 如果电子爱好者想要做一些小创作,或者本科生需要做一些简单的控制,使用单片机是非常方便的。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

常用的单片机有Arduino单片机、51单片机、STM32单片机等。

总体来说,就性能而言,STM32>51>Arduino,就价格而言,STM32

本专栏是STM32的入门指南。 如果不出意外的话会持续更新。 评论开放,大家可以随时一起讨论。

作者不是电气专业的,只是一个爱好者,而且是一个非常非常的新手。

如有错误,请指出! 我将非常感谢您的建议!

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

硬件和知识要求

C语言编程知识

数字电路和模拟电路最基本的知识

一块STM32开发板(本文使用STM32F407 YS-F4Pro开发板)

连接电脑和单片机的配套数据线

一台电脑

LED灯、面包板、杜邦线(可选)

软件要求

本文使用64位Windows 10系统电脑,使用的软件包括STM32CubeMX和IAR。 除了IAR之外,Keil4和Keil5也可以,但更推荐IAR。 如果需要下载链接、破解方法和配置方法,可以私聊。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

Keil5图标显示好像有问题= =

这里简单介绍一下STM32CubeMX,它是一个免费的小型图形化编程程序。 它可以图形化方式生成初始化代码,并为不同的IDE软件提供工程,包括但不限于IAR和Keil。 完美运作。

STM32编程有3种语言。 我们这里使用C语言:

C语言也有不同的方法,寄存器编程、标准库编程和HAL库编程。 寄存器编程类似于汇编语言,效率高,但在复杂程序中显得繁琐、麻烦。 标准库是一个老东西,不再维护或更新。 HAL库现已正式推广。 我也在使用 HAL 库。

配置流程

分三步进行:

STM32CubeMX软件生成初始化程序

在IAR或者Keil中打开初始化程序进行编辑,然后模拟下载程序,也就是俗称的将程序烧写到芯片上。

连接超简单的硬件电路,单片机GPIO口—LED—单片机GND口,最后调试! 打开灯! 要有光!

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

某种程度上极其粗糙的电路

配置STM32CubeMX

图形化编程真是快乐。

首先我们打开软件,点击New Project,也就是创建一个新项目。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

出现CPU芯片和开发板型号选择界面。 在此界面中,您可以搜索自己的芯片。

我们直接在图片左侧输入我们自己的芯片。 我这里使用STM32F407IG。

您还可以使用下面的选项卡逐步选择您自己的芯片型号。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

搜索结果将显示在右侧。 点击鼠标选择自己的芯片。 如图所示,作者的芯片在第二排,已经被选中。

然后点击启动项目:

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

点击Datasheet,会出现芯片信息的PDF版本。 此时,我们就正式创建了一个新项目。

我们简单介绍一下此时的界面:

右侧红色部分为各种引脚类型设置。 默认是关闭的,需要的时候可以设置。 例如,如果我设置RCC时钟,我需要点击RCC,然后选择相应的设置。

蓝色部分为芯片的引脚,黄色引脚为电源引脚,如VCC,灰色为未设置的引脚,浅绿色为特殊功能引脚。 如果要设置,只需单击鼠标左键选择引脚,然后选择将其设置为其他类型即可。

黑色部分是不同的配置表。 我们需要配置前三个表。 第四个表是功率计算,一般不需要。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

配置引脚分配表

首先选择需要向LED灯输出高电平的输出引脚。 该界面可以通过鼠标滚轮进行放大和缩小。 按住滚轮或同时按下鼠标左右键可移动图形。

我这里选择的是PE6、PE5和PH9,左键单击选择GPIO_Output。 即普通输出口。

选择后变成图2

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

然后对右侧的栏进行设置。 如下所示。

打开RCC设置并选择外部晶体振荡器Crystal/Ceramic Resonator。 细心观察的同学可能会注意到,此时右侧的PH0和PH1都变成了绿色。 不要惊慌,这是正常现象。 这两个连接到外部晶体振荡器。 这里的外侧是相对于芯片的外侧,而不是板子的外侧。 这个东西还在开发板的板子上。

打开 SYS 设置,单击“调试”,然后选择“串行线”。 使用ST-Link仿真调试时需要选择此项。

题外话,芯片内部是有内置时钟的,但是大量工程师已经证明芯片内部的时钟不够可靠。 因此,一般STM32工控板都会在芯片外部添加精度更高的外部晶振。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

需要查看工控板的开发板手册,了解外部晶振的频率。 我的截图来自开发板的主板原理图。 该信息可以通过联系商家或开发工程师获取。

根据资料查询,这里的外部输入频率为8MHz,同样查询可知这款芯片的最高频率为128MHz。

记住这两个数字!

配置时钟配置表

然后我们选择界面左上角的Clock Configuration时钟配置表。

按照图中的数字顺序进行配置。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

另外,如果你的外部晶振不是8MHz,配置过程是一样的,只是输入的数字不同,需要单独计算数字。

首先需要得到图中黄色部分的最大出现频率。 你的目标是让输入频率,经过一系列乘除运算后,黄色部分的结果等于这里的最大频率。

第一个黄色部分的频率是芯片的最大频率。 这里是168MHz。

右边两个黄色部分的最大频率已经被软件用绿色字体写出来了。

然后您可以执行简单的乘法和除法运算。 比如我这里的流程是:

8 /8 *336 /2=168

这里除以8的原因是为了让结果等于1

168 /1 /4 = 42

168 /1 /2 = 82

经过这样一组过程,我们就配置好了第二张表。

一般来说,这个地方大部分简单的程序都是这样配置的。 只要记住这组操作就可以了。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

配置表

现在打开第三个配置表:Configuration配置

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

一般来说,您无需担心左侧。

右边会有一些你需要配置的东西。

我们只需要配置GPIO端口即可点亮智能LED灯。

于是点击上图红色按钮,弹出界面,配置各行如下图:

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

GPIO口输出我选择了三个引脚,所以这里有三行,分别对应PE5、PE6、PH9这三个引脚。

选择一行或多行以查看特定配置选项。

我们一一解释一下:

GPIO输出电平:这个很简单,High表示输出高电平,Low表示输出低电平。

GPIO 模式:选择输出推挽。 我们一般用这个3.3V输出,有电流。

GPIO上拉下拉:一般作为输入口使用时配置。 所以我们选择No pull-up and no pull-down,这意味着我们什么都不想要。

最大输出速度:根据需要选择最高速度、中速、低速或高速。 如果它低,功耗就会低。 我们不需要高速来点亮灯,所以选择Low即可。

UserLabel:随意添加标签Label。 在C语言中,它是一个宏定义。

最后点击应用,配置任务就完成了!

STM32CubeMX生成初始化工程文件

点击软件界面左上角菜单栏Project

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

看左上角! 左上角!

然后选择设置并按照图中所示的顺序进行设置。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

第一个蓝色圆圈是项目名称,第二个红色圆圈是项目保存路径。

第三个黑色更重要! 如果以后使用IAR请这里选择EWARM,使用Keil 4选择MDK-ARMV4,使用Keil 5选择MDK-ARMV5,其他软件自行百度搜索。

上图中的Linker Settings是堆和栈的选择。 一般来说,默认就可以了。

接下来,在同一页面选择Code Generator,然后勾选图中第二个红圈选项。

其他的保持默认即可。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

激动人心的一步已经到来。

或者在菜单栏选择Project,点击Generate Code,初始化程序就生成了!

如有必要,单击“生成报告”以生成描述的 PDF 文档。

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

至此,初始化过程就完成了! ! !

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

后续的IAR和Keil工程配置和程序仿真下载将在第2部分详细讲解。

“我不会鸽子!”

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

(淙淙)

注:STM32CubeMX软件的引脚排列配置表中,左栏各引脚与功能的对应关系如下:

中间件:第三方高级应用程序

外设:

RNG随机数

RTC实时时钟

SDI读取SD卡

SPI接口

SYS系统相关

TIM共有14个定时器

UART串口

WWDG 窗口看门狗

常用单片机有Arduino单片机、51单片机STM32CubeMXArduino407YS-FArduino

单片机

ISIS软件开发系统仿真PCBARES做板传统开发流程

2024-3-3 17:05:27

单片机

基于单片机的粮库温度监控系统设计,1,已完成工作

2024-3-3 18:09:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索