Ⅰ、写在前面

学习STM32开发难不难?

笔者的回答:不难!!!

 

为什么不难?

1、ST提供了很多很好的资源,比如:标准外设库、多种资料(包括多版中文的翻译版资料)等。

2、很好的集成开发环境Keil、IAR等。

3、网上很多有用的分享,包括笔者在内的愿意把技术知识无偿分享出来的人。

 

学习STM32开发前途怎么样?

笔者的回答:只要你技术能力够强,月薪上万不是问题。

 

要学到什么程度才能找到相关工作?

1、首先要能灵活运用C语言常用知识编程,也就是说不要求精通,但要能灵活使用基本的语法(如:switch、for、break等),还需要对指针、结构体等有一定的掌握。

2、你得有自己独立开发的项目,项目的大小可以看得出你部分能力。

3、对STM32基本外设有部分了解并亲自写代码验证过。

 

Ⅱ、笔者想说的话

笔者觉得很多初学者不善于主动去学习,都是想利用现成的工程代码。笔者觉得这样学习的方法不会成就你今后的成功,人都有懒惰的一面,但现实就是这么残酷,没办法,你不努力,别人就会超过你。现在大学生就业的情况,我们大家都应该知道,可以说是一年不如一年好了。每一年都有成千上万的大学生进入社会,你在这个领域不付出点努力,总会有人在这个领域付出努力

如今社会,不管是哪一行,竞争都很激烈。如果你决定选择了这一行,在不得已的情况下,请不要轻言说放弃。因为你放弃了就等于否定了你当初的决定,你再去决定选择另外一个行业,说不定今后你还会否定你当初的决定,这样会恶性循环下去。笔者的建议是:真正想想自己喜欢哪一行、适合哪一行,想好了再做决定。

 

关于学习STM32,笔者觉得它真的不难,需要的是我们的耐心,我们的努力。如果你当初只是感觉喜欢学习STM32,那么请保持这份感觉。如果你在学习的时候遇到困难,失去这份感觉了,请你用不同的方法找回这份感觉。如果你想放弃这一行,请做好进入另外一行的准备。

 

 

Ⅲ、如何将工程(修改来)运行在自己开发板上

    可能很多朋友的开发板、调试板上面主控芯片和笔者提供讲解的工程实例不一样,那么,只要是同一个系列(比如同为F4系列:你的是STM32F427IG、笔者的是STM32F417ZG),只要适当修改一下工程配置就能使用了。

    笔者告诉大家:STM32的兼容很好,有些工程可能不用修改,直接下载都能使用。(但是,作为学习尽量自己动手验证、如果只是测试某个功能,可以直接下载测试)。

 

好了,说了那么多,还是教大家如何使用我的工程:

1.了解笔者工程文件、工程结构关系

stm32哪个系列可以跑深度学习 stm32难么_宏定义

笔者使用的文件和工程结构如上图所示的对应关系。

文件结构中Libraries就是提取ST官方的标准外设库,对应添加到工程中(分为三类)。

文件中自定义的文件夹对应工程的一个组。

 

第一类(标准外设库):

Startup Code:启动代码

STM32F10x_StdPeriph_Driver:标准外设库库驱动

CMSIS:标准接口

 

第二类(用户自定义):

Bsp:应用底层代码(初始化、驱动等)

App:应用实现代码(配置OS、应用等)

 

第三类(描述):

Doc:ReadMe.txt描述文档,不会执行编译

 

 

2.同系列修改型号

同一系列(我们以F4系列为例,其他系列F0、F1这些原理一样)芯片的工程,如果资源都有,工程可以共用,只需要修改一下工程里的型号就行。

我们以F4工程为例,STM32F417ZG-> STM32F427IG修改方法如下三步骤。

参考工程下载地址:

https://yunpan.cn/cBQiZXDsvacwV  访问密码 a98e

 

 

1.修改工程配置型号

project ->Options for Target -> Device 修改为自己芯片的型号

修改方式如下动画:

stm32哪个系列可以跑深度学习 stm32难么_工程配置_02

 

2.修改源文件型号

笔者习惯在工程文件里面修改型号,原因在于这里可以看见具体的型号,也知道宏定义的名称(如:STM32F40_41xxx)。

其实,这个宏定义在工程配置中也可以定义,根据自己习惯选择定义。

修改方式如下动画:

stm32哪个系列可以跑深度学习 stm32难么_宏定义_03

 

3.修改启动文件

启动文件和芯片型号对应的关系,比较简单,如下动画:

stm32哪个系列可以跑深度学习 stm32难么_stm32哪个系列可以跑深度学习_04

 

3.应用相关

笔者提供的实例代码都是简化了很多无用的代码、比较基础的、容易理解的,基本上都是提供LED、USART1、TIM延时这种在所以芯片都有的功能。

 

如果你LED不是笔者提供例程里面的,很简单,在bsp.h文件下改一下对应IO口就行了。

如果你串口是使用USART2,只要usart.c文件下修改相关配置就行了。