使用STM32Cube和正点原子的工程相结合
看到这篇文章的同学,多多少少对STM32Cube有一些了解。本文章大概的描述一下,如何去配置一个STM32Cube工程,然后再结合正点原子里面的相关例程。
-
为什么选用STM32Cube这个软件
这个问题我简单的叙述一下,如果想直接看如何配置一个工程的同学,可以直接跳到第二部分。
如果只是使用Keil或者Visual Studio这样的IDE,我们也能对32进行操作,那为什么我们要用STM32Cube呢,简单来说就是“方便!”。
很多同学在建立一个工程的时候,刚开始写程序,使用一些基本的功能和一些基本的外设,单纯使用正点原子或者其他的例程来配置的时候,并没有什么困难。但是如果当使用的引脚过多,或者使用的外设变多的时候,整个工程可能就变得混乱,最后引脚的使用也收到了影响。
但是STM32Cube很好的解决了这个问题。
由STM32Cube的界面可以看到,STM32Cube将一个32芯片引脚的使用情况以及外设的使用情况显示出来。并且他能特别方便我们对一个引脚进行初始化,以及对他的功能进行一些配置。例如下图,我们对PC8引脚功能选择,可以选择输出功能,或者输入功能。
然后我们还能通过STM32Cube进行引脚的输出模式,以及输出状态。
再举一个例子,如果我们想配置一个STM32F4的定时器,我们可以用STM32Cube配置定时器里面的寄存器。
当然最后不要忘了,记得配置定时器的中断优先级。 -
STM32Cube怎么样建立一个32工程(以STM32F407ZGT6为例子)
说了这么多STM32Cube的好处,那么我们该如何配置一个32的工程呢。这个东西其实在正点原子的HAL库教程已经叙述的很详细了,不过我还是再演示一次。
首先是下载使用芯片的固件包
我们可以通过点击help里的Manage…进行下载
至于有些同学可能会遇到下载失败的情况,这个问题笔者还不知道怎么解决,如果有会解决的同学,希望教教笔者。当然也可以通过直接在官网下载好固件包的压缩文件,然后进行直接导入。接下来就是开始新建一个工程。
首先是选择芯片型号
然后第一步配置时钟树(选择外部高速时钟)
至于时钟的相关的原理知识,以及各分频(或者倍频)系数的取值问题,可以参考STM32中文手册,或者正点原子的HAL库例程。
之后就能进行一些外设的配置啦!
最后选择编译器,然后就能生成相应的工程了。
-
STM32Cube和正点原子例程相结合(以LCD屏幕为例子)
对于大部分同学来说,很多初学者在网上找的例程或者一些外设的配置,都是来自于正点原子(来自其他的博主也没啥问题),但是在配置一些外设(例如LCD或者W25QXX)的时候总是有一大堆报错,特别烦人,那么此时我们该如何解决呢,笔者有一些小方法,现在分享给大家。(以LCD实验为例子)