以下为《实验七 基本定时器输出实验》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
实验七: TIM实验-定时输出实验
实验目的:
熟悉STM32开发平台的软硬件,学会使用STM32的固件库,能够编程实现项目功能。
实验内容:
配置GPIO端口,能够设置PWM输出对应管脚的端口模式
实现TIM定时控制LED进行周期的闪烁
实验过程
1、TIM简介
定时器是MCU中常用的外设,用于实现计数、定时等功能。常用于脉冲计数、时间控制和波形控制等场合。
STM32F103有8个通用功能的定时器(还有几个专用的,例如看门狗、RTC,将在相关章节讲解),分别是TIM1-TIM8,它们分为三组:高级控制定时器、通用定时器和基本定时器。
TIMx由一个16位的自动装载的计数器组成,受一个可配置的预分频器驱动。主要特性如下:
基本计数,定时功能,计数范围1-65535。
每个定时器有四个独立通道,TIM1还有三个通道可产生互补信号。
适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形。
使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。
定时器之间完全独立的,它们不共享任何资源,可以同步操作。
PWM(Pulse Width Modulation,脉冲宽度调制)是一种对模拟信号电平进行数字编码的方法,它利用脉冲宽度即占空比来表示一个模拟信号电平的高低,是一种数字信号对模拟电路进行控制的非常有效的技术。
在STM32F103中,TIMx模块可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCR(捕获/比较)寄存器确定占空比的PWM信号。
2、GPIO端口配置
由于开发板上标准配置具备LED控制的功能和硬件接口,所以要做本章的实验可以采用开发板实现。
图1-1 LED连某某示意图
根据学过的GPIO配置的知识,对于LED端口配置可配置成复用推挽输出模式,配置代码内容如下所示:
void LED_GPIO_Config(void)
{
/*定义一个GPIO_InitTypeDef类型的结构体*/
GPIO_InitTypeDef GPIO_InitStructure;
/*开启LED相关的GPIO外设时钟*/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
/*选择要控制的GPIO引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
/*设置引脚模式为通用推挽输出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/*设置引脚速率为50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*调用库函数,初始化GPIO*/
GPIO_Init(GPIOB , &GPIO_InitStructure);
/* 关闭所有led灯 */
GPIO_SetBits(GPIOB , GPIO_Pin_5);
}
3、TIM配置部分
定时器部分配置成每隔500ms定时中断一次,进行LED的控制,并且增加NVIC配置,配置中断,配置代码如下所示:
void BASIC_TIM_NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
// 设置中断组为0
NVIC_Priorit 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 == 0) // LEDR is on
{
GPIO_SetBits(GPIOB, GPIO_Pin_5); // LEDR OFF
}
else // LEDR is off
{
GPIO_ResetBits(GPIOB, GPIO_Pin_5); // LEDR ON
}
}
实验现象
1.编译整个程序,编译完成后观察Build Output输出的信息,若显示 0 Error(s),0 Warnig(s),则证明程序编译无问题,继续下一步下载操作。
2.连某某J-Link至开发板,将USB插入电脑,下载程序至开发板,观察实验现象,LED以500ms的周期进行亮灭闪烁。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《实验七 基本定时器输出实验》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。