本文主要在于说明使用 STM32CUbeMX 生成一个STM32 最小系统板子的工程步骤,适合所有的 STM32F STM32L 系列芯片!
∙前言白萝卜的吃法
∙1、时钟相关
▪1.1 RCC
▪1.2 Clock Configuration 时钟设置
∙2、调试相关
∙3、外设相关
▪3.1 USART 串口
▪3.2 GPIO(LED、按键)
▪3.3 TIM 定时器
▪3.4 IWDG 独立看门狗
∙4、生成工程
▪4.1 Project 栏目
∙4.2 Code Generator栏目
前言
我前面的文章分析过,因为STMF103系列芯片的涨价,我更换了芯片,使用STM32L051 替换 STM32F103 系列。
最近把以前的笔记整理一下,当做记录分享。
心脏病急救板子到手,开始使用STM32L051测试,当然得使用STM32CubeMX工具,正好借这个机会简单的说明一下如何使用 STM32CubeMX 开发 STM32芯片。
新建工程,选择对应芯片,然后设置下相应的引脚(需要根据自己的原理图)。
维内托级战列舰
本文主要在于说明使用 STM32CUbeMX 生成一个STM32 最小系统板子的工程步骤,适合所有的 STM32F STM32L 系列芯片!
1、时钟相关
打开STM32CubeMX ,选择好自己用的芯片,根据下面步骤进行设置:
1.1 RCC
栏目中的选项如下:
∙骑自行车能瘦腿吗Disable(禁用)
∙BYPASS Clock Source(旁路时钟源)
∙Crystal/Ceramic Resonator(晶体/陶瓷晶振)
如上图一样有外部晶振选择 Crystal/Ceramic Resonator
1.2 Clock Configuration 时钟设置
在设置定时器参数之前,需要先确定系统的时钟,在这里我们第一次测试,用不到低功耗,所以将系统时钟设置为32MHZ最大值,如下图:
2、调试相关
在SYS中选择 SWD烧录模式 Debug Serial Wire
3、外设相关
3.1 USART 串口
使用串口1(USART1)作为调试串口(PA9 PA10),选择Asynchronous (异步通讯模式),打开串口中断,设置好自己需要的波特率,串口1设置完成。
还需要使用另外一个串口与无线模块通讯,PCB图纸上使用的是(PB10 PB11),同样按照上图设置,这两个端口在STM32F103上是正常的串口3,但是在STM32L051上是LPUART1,是一个低功耗串口,这里并不需要用到它的低功耗功能,就直接和普通串口一样设置,把他当做一个普通串口使用。
3.2 GPIO(LED、按键)
LED灯设置为输出,按钮设置为输入,xXX自由色 选中对应的IO口,选择模式,如下图:
还可以对每个IO口进行设置,如下图:
3.3 TIM 定时器
查阅资料STM32L051C8T6有5个定时器 通用定时器(TIM2、TIM21、TIM22、),基本定时器(TIM6),低功耗定时器(LPTIM1)。
因为用不到低功耗定时器,主要还是不确定低功耗定时器是否和普通定时器一样用,本次目的主要还是想先测试出效果,所以选用通用定时器,其中Clock Source 选择为 internal Clock ;怀孕后不能吃什么定时器选中还有一个重要的配置:
3.3.1 定时器时间计算说明
在上面的时钟设置好以后,就可以设置定时器里面的ARR和PSC:青春和你
∙ARR :重装载值(auto reload register)
∙PSC :预分频器(pre-scaler)
七年级上册古诗
公式如下:
//Tclk:定时器的输入时钟频率(单位MHZ)
//Tout:定时器溢出时间(单位为us
Tout = ((arr+1)*(psc+1))/Tclk ;
比如上图中的定时器,就设置成了 定时时间1S,每 1S 就会产生一次中断。
如何理解这个时间:
比如F103晶振 72M,也就是一秒计 72 00 0000 次,72 00 0000 Hz
Prescaler预分频值设置7200-1是因为预分频值从0开始