Ⅰ、写在前面
学习STM32开发难不难?
笔者的回答:不难!!!
为什么不难?
1、ST提供了很多很好的资源,比如:标准外设库、多种资料(包括多版中文的翻译版资料)等。
2、很好的集成开发环境Keil、IAR等。
3、网上很多有用的分享,包括笔者在内的愿意把技术知识无偿分享出来的人。
学习STM32开发前途怎么样?
笔者的回答:只要你技术能力够强,月薪上万不是问题。
要学到什么程度才能找到相关工作?
1、首先要能灵活运用C语言常用知识编程,也就是说不要求精通,但要能灵活使用基本的语法(如:switch、for、break等),还需要对指针、结构体等有一定的掌握。
2、你得有自己独立开发的项目,项目的大小可以看得出你部分能力。
3、对STM32基本外设有部分了解并亲自写代码验证过。
Ⅱ、笔者想说的话
笔者觉得很多初学者不善于主动去学习,都是想利用现成的工程代码。笔者觉得这样学习的方法不会成就你今后的成功,人都有懒惰的一面,但现实就是这么残酷,没办法,你不努力,别人就会超过你。现在大学生就业的情况,我们大家都应该知道,可以说是一年不如一年好了。每一年都有成千上万的大学生进入社会,你在这个领域不付出点努力,总会有人在这个领域付出努力。
如今社会,不管是哪一行,竞争都很激烈。如果你决定选择了这一行,在不得已的情况下,请不要轻言说放弃。因为你放弃了就等于否定了你当初的决定,你再去决定选择另外一个行业,说不定今后你还会否定你当初的决定,这样会恶性循环下去。笔者的建议是:真正想想自己喜欢哪一行、适合哪一行,想好了再做决定。
关于学习STM32,笔者觉得它真的不难,需要的是我们的耐心,我们的努力。如果你当初只是感觉喜欢学习STM32,那么请保持这份感觉。如果你在学习的时候遇到困难,失去这份感觉了,请你用不同的方法找回这份感觉。如果你想放弃这一行,请做好进入另外一行的准备。
Ⅲ、如何将工程(修改来)运行在自己开发板上
可能很多朋友的开发板、调试板上面主控芯片和笔者提供讲解的工程实例不一样,那么,只要是同一个系列(比如同为F4系列:你的是STM32F427IG、笔者的是STM32F417ZG),只要适当修改一下工程配置就能使用了。
笔者告诉大家:STM32的兼容很好,有些工程可能不用修改,直接下载都能使用。(但是,作为学习尽量自己动手验证、如果只是测试某个功能,可以直接下载测试)。
好了,说了那么多,还是教大家如何使用我的工程:
1.了解笔者工程文件、工程结构关系
笔者使用的文件和工程结构如上图所示的对应关系。
文件结构中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 修改为自己芯片的型号
修改方式如下动画:
2.修改源文件型号
笔者习惯在工程文件里面修改型号,原因在于这里可以看见具体的型号,也知道宏定义的名称(如:STM32F40_41xxx)。
其实,这个宏定义在工程配置中也可以定义,根据自己习惯选择定义。
修改方式如下动画:
3.修改启动文件
启动文件和芯片型号对应的关系,比较简单,如下动画:
3.应用相关
笔者提供的实例代码都是简化了很多无用的代码、比较基础的、容易理解的,基本上都是提供LED、USART1、TIM延时这种在所以芯片都有的功能。
如果你LED不是笔者提供例程里面的,很简单,在bsp.h文件下改一下对应IO口就行了。
如果你串口是使用USART2,只要usart.c文件下修改相关配置就行了。