首页
右边红圈处,检查软件更新。
红圈下面,安装或者更新芯片软件包。(通常工程创建过程中如果发现没有对应的芯片软件包,也会自动下载安装)
创建工程

从ST的开发板创建一个工程
从例程创建一个工程
选择芯片

选择好以后start project就会进入工程的设置界面。
工程引脚配置
RCC和SYS配置好了,一般芯片也就能够运行了。

RCC复位和时钟控制模块
芯片最重要的是配置时钟。
最基本的配置是开启一个外部时钟,选择石英振荡器。
下面的参数都是默认的,不用改。
Systic滴答定时器
注意这里一定要选择Serial Wire,串行线。
只有选择了串行线,才能在后续使用ST-Link这种四线的调试接口,对代码进行烧录或者调试。其他选项分别是四线/五线的JTAG。
JTAG是一种通用的测试协议,而STLink是专为STM32系列微控制器设计的调试和编程工具。
JTAG通常需要额外的硬件调试器来实现其功能,而STLink可以作为独立的调试器使用,也可以集成在开发板上。
如果这里选NoDebug的话,会导致芯片只能通过STLINK烧写一次,后面必须通过串口烧录的方式给它重新刷洗一遍,
然后下面的 Timebase Source 是选择系统时钟源,不使用FreeRtos的情况下使用SysTick就可以了,使用FreeRtos的情况下根据个人选择。(其他几个选项分别是TIM1~5,TIM9、TIM10)
模拟信号
ADC的 IN0~IN15 代表模数转换器的15个通道。
定时器
连通
串口、IIC、SPI、USB等等。
定时器
RTC实时时钟和各种TIM定时器。
多媒体
冗余循环校验
中间件
工程时钟配置
外部晶振和时钟总线
这里是配置芯片的时钟树。
从左往右按列看,最外边是输入的时钟信号。
这里32.768khz是外部低速时钟LSE。刚刚由于没有开启LSE,因此这里是灰色。
由于我们开启了外部高速时钟HSE,因此这里是蓝色。晶振频率一般不用改。
12.288mhz通常用于SPI(串行外设接口)和I2S(集成交错式2声道音频串行)等接口。
这里的这条线,就是时钟总线。
信号HSE和LSE
晶振将信号给到时钟总线,接着给到外部高速时钟和外部低速时钟。
外部高速时钟的信号,被锁相环源复用器分频,
然后这里的几个点,可以选择信号的来源。
包括分频后的外部时钟和内部时钟。
最后信号是给到 各个子系统和外设。
一般内部震荡信号存在相对比较大的误差。而且可能受到芯片工作温度的影响。
因此尽量使用外部石英信号作为时钟源。
像这里如果是F1的话,一般F1的主频最高是72Mhz,因此一般是外部时钟经过锁相环倍频到72MHz,把性能拉满,作为系统时钟源。
我这里用的F4,默认就是150MHz满频率作为系统时钟源。
这个界面出现红色报错就是有问题,
看这里的标红处写了,最大频率为多少,改一下让满足就行。
这样错误就消除,性能也刚好拉满了。
有时候SPI或者CAN之类的通信协议可能对时钟频率有特殊的要求,这个时候
GPIO口配置
比如现在想要做个简单的点灯配置。
以PC13为例,为什么不用PC14或者PC15呢?
点击PC14。可以看到该引脚的功能有一个RCC_OSC32_IN,这个是外部低速时钟信号,如果开启了LSE引脚会冲突。PC15也一样。


现在用GPIO13点灯,把GPIO13配置成输出。
可以看到下面有选项可以选,
输出电平指的是默认情况下,GPIO口输出高电平还是低电平。
GPIO模式指的是
浮空输入、上拉输入、下拉输入
推挽输出、开漏输出。
推挽可以输出高或低电平,常用于驱动外部负载。
开漏只能输出低电平或高阻态。当输出低电平时,引脚被拉到GND;当输出高阻态时,引脚的电平状态由外部电路决定。通常需要外部上拉电阻来提供高电平。这种模式常用于多设备共享总线的场景,例如I2C通信。
比如IO需要高电平到5V,但芯片只能提供3.3V,就需要外部上拉电阻来提供高电平。
GPIO PULL-up和GPIO PULL-down指的是GPIO的上拉或者下拉(输入模式下)。当然也可以在外部通过上拉或者下拉电阻,来让它保持高电平或者低电平。
最大输出速度,分低中高,点灯没有要求。
用户标签,便于在编程时直接用名称标签控制IO口。
项目管理
注意目录位置不要有中文。
至于IDE那里,一般是MDK-ARM(keil5),或者cubeIDE(st官方出的一个IDE)。
IDE的最小版本根据自己情况选。
代码生成
MCU包和嵌入式软件包
复制全部库文件到工程文件夹。
只拷贝必要的库文件(用到了什么外设才拷贝什么库到工程中)。通常都是用这个,可以给工程减少一些体积。
在工具链项目配置文件中添加必要的库文件作为引用。
对每个外设都单独生成一个.c和.h文件。
翻译:
STM32Cube MCU 包和嵌入式软件包
-
将所有使用的库复制到项目文件夹中
-
仅复制必要的库文件
-
在工具链项目配置文件中添加必要的库文件作为引用
生成的文件
-
为每个外设生成一对 '.c/.h' 文件以进行外设初始化
-
重新生成时备份先前生成的文件
-
重新生成时保留用户代码
-
未重新生成时删除先前生成的文件
HAL 设置
-
将所有空闲引脚设置为模拟(以优化功耗)
-
启用完全断言
FreeRtos
生成 freertos代码把这个勾上就行,
记得把systick的时钟源改成定时器