xzy610030

一起探讨,一起进步,一起分享!

stm32F4----标准库开发的第一个例程(四)

0
阅读(3711) 评论(2)

上一篇博客用51的方式玩了一下stm32,但是stm32强大之处在于他的标准库,因此,从现在开始就切换到用标准库来开发了。


(一)标准库下载:

STM32 Standard Peripheral Libraries  下载链接:

http://www.stmicroelectronics.com.cn/en/embedded-software/stm32-standard-peripheral-libraries.html?querycriteria=productId=LN1939

选择对应的库,我这里是F4,现在的版本是1.8.0,下载。

解压:

0.png

主要是Libraries下面的库,这里库之间的关系很大资料都有讲,我就跳过,直接用这里的库建立一个工程。


(二)工程建立

在即将要新建的工程目录,建立Libraries和User两个目录

Libraries里面就是将标准库的直接拷贝;库里面的文件都是只可读的,我这里把它去掉了这个属性

User下拷贝的标准库下的:D:\Keil_v5\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates

文件拷贝完了,开始建立工程了

建立如下几个组

User添加源文件:F:\led\User下的文件

Startup组添加启动文件:F:\led\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm

外设添加文件:我这里全部添加,其实在工程中,有些不用的可以先remove,这样还可以加快编译的速度。

F:\led\Libraries\STM32F4xx_StdPeriph_Driver\src

CMSIS添加文件:F:\led\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates

修改main函数:

修改这个中断的文件(一):

继续修改(二)

有个fmc.c做如下设置:

这里勾上

这里一定要设置好。。。

至此,工程就可以编译通过了。


(三)用标准库点亮一个灯

新建led_driver.c和led_driver.h,led_driver.c如下:

16.png

led_driver.h如下:

17.png

将上面两个文件添加进工程,编写main函数

19.png

在新建的led_driver中调用gpio里面的函数,然后提供给main函数使用。上图中就是这样,函数非常简单,就是熟悉一下建立标准库工程,现在这个基本也上手了。

下载程序,可以看到LED2(PB7)欢快的闪烁起来了。


(四)总结

和DSP C2000相比,有很多共同的地方,因此,在理解stm32的框架时就更简单,但C2000更像一个纯粹的单片机,很多时候,我都要直接操作寄存器了。但是工程框架时类似的,学习stm32主要是学会使用标准库开发,不过ST现在在力推HAL库,但作为我这样的初学者,学习标准库无疑是个好的选择。


PS:玩stm32也没几天,对c的开发也不是很懂,因为以前写verilog的,所以中途经常请教一个好兄弟(专门做嵌入式的),他对stm32非常了解,并且总是不吝赐教,感恩,谢了哥们(即使你看不到,哈哈),一直拉他来AET博客,不过他比较忙,所以难说。。


另外,插入代码怎么是乱码啊,许久不写博客了,这个都不会了,只好先截图了。。。

基础就记录在这里,后面结合我个人的情况研究一些常用的外设来学习,最后加上W5500(刚淘宝买的)来玩玩,写到这里,睡觉。。。

  1. 学习了,长见识了

  2. 走标准库也是蛮好的!赞。