实验目的
1、 了解STM32G0内部连接矩阵的架构。
2、 通过定时器之间的内部连接,达到定时器分频的目的。
3、 熟悉STM32CubeMX的配置流程。
4、 知道内部连接的优势
实验环境
软件环境:IAR 8.22
STM32Cube_FW_G0_V1.0.0
STM32CubeMX 5.0.1
硬件环境:Nucleo-G071RB
示波器/逻辑分析仪
原理框图
STM32CubeMX配置流程
1、 打开STM32CubeMX;
2、 选择STM32G071RB;
3、 使能TIM3的内部时钟并设置自动重装载的值为16000-1,开启自动重装载功能;
4、 开启TRGO OutPut功能且设置输出TRGO事件为更新事件
5、 配置TIM2的从机模式为External-Clock Mode 1,触发源为ITR2,设置通道1为PWM输出,自动重装载的值为1000-1,PWM输出的Pulse为500。
6、 将TIM2_CH1重定义到PA5这个GPIO上(默认是定义到PA0上的)这是为了测试简单,因为PA5上连接了LD4。
7、 检查一下时钟配置,确认系统时钟为16MHz,APB Timer的时钟为16MHz
8、 工程命名为STM32G0_Test,选择EWARM_V8工具链;
9、 直接生成IAR的工程;
增加代码
Main.c文件中的main函数中,增加如下粗体部分的代码
MX_TIM2_Init();
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start(&htim3);
HAL_PWM_Start(&htim2,TIM_CHANNEL_1);
/* USER CODE END 2 */
Nucleo-G071RB测试点
PA5在Nucleo-G071RB上有两个测试点,可以用来连接示波器或者逻辑分析仪;
CN5的第6Pin或者是CN10的第11pin;
频率计算
在APB的时钟为16MHz的情况下,TIM3的输入时钟为16MHz,经过16000的分频,就会得到1000Hz的更新事件频率,将这1000Hz的频率输入到TIM2的时钟内,再经过1000分频,就得到1Hz的时钟。让PA5(TIM2的通道1)产生一个占空比为50%的方波,我们即可在示波器上看到这个波形。
如果没有示波器,在Nucleo板子上也可以看到LD2灯在不断的闪烁。