定时器PWM
更新时间:2023-03-11 20:33:01 阅读量: 教育文库 文档下载
天水师范学院
TIANSHUI NORMAL UNIVERSITY
《微机原理与接口技术》
实验报告
名称:定时器PWM输出 学院:电子信息与电气工程学院 专业:电子信息工程 班级:16级电信一班 姓名:张响生秦汉柱
学号: 20161060107 20161060132
一、实验目的;
1、掌握使用 STM32 的通用定时器的方法
2、掌握使用STM32 的 TIM3 来产生 PWM 输出
二、实验原理;
1、STM32 的通用定时器是一个通过可编程预分频器(PSC)驱动的 16 位自动
装载计数器(CNT)构成。可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。 2、STM32的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能包括:
1)16 位向上、向下、向上/向下自动装载计数器(TIMx_CNT)。
2)16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535 之间的任意数值。 3)4 个独立通道(TIMx_CH1~4),这些通道可以用来作为: A.输入捕获 B.输出比较
C.PWM 生成(边缘或中间对齐模式) D.单脉冲模式输出
4)可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。 5)如下事件发生时产生中断/DMA:
A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) C.输入捕获 D.输出比较
E.支持针对定位的增量(正交)编码器和霍尔传感器电路 F.触发输入作为外部时钟或者按周期的电流管理
2、脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技
术。
1)PWM 模式
脉冲宽度调制模式可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCRx寄存器确定占空比的信号。
在PWM模式下,TIMx_CNT和TIMx_CCRx始终在进行比较,(依据计数器的计数方向)以确定是否符合TIMx_CCRx≤TIMx_CNT或者TIMx_CNT≤TIMx_CCRx,以便输出某一电平信号。
PWM模式1在向上计数时,一旦TIMx_CNT
PWM模式2在向上计数时,一旦TIMx_CNT
三、实验电路图;
四、关键代码;
Init.h
/************************RCC寄存器组定义*******************/ #define RCC_CR *((unsigned volatile int *)0X40021000) #define RCC_CFGR *((unsigned volatile int *)0X40021004) #define RCC_APB2ENR *((unsigned volatile int *)0X40021018) #define RCC_APB1ENR *((unsigned volatile int *)0X4002101c)
/************************TIM寄存器组定义*******************/
#define TIM3_CR1 *((unsigned volatile int *)0X40000400) #define TIM3_SMCR *((unsigned volatile int *)0X40000408) #define TIM3_DIER *((unsigned volatile int *)0X4000040c) #define TIM3_SR *((unsigned volatile int *)0X40000410) #define TIM3_EGR *((unsigned volatile int *)0X40000414) #define TIM3_CCMR1 *((unsigned volatile int *)0X40000418) #define TIM3_CCMR2 *((unsigned volatile int *)0X4000041c) #define TIM3_CCER *((unsigned volatile int *)0X40000420) #define TIM3_CNT *((unsigned volatile int *)0X40000424) #define TIM3_PSC *((unsigned volatile int *)0X40000428) #define TIM3_ARR *((unsigned volatile int *)0X4000042c) #define TIM3_CCR1 *((unsigned volatile int *)0X40000434) #define TIM3_CCR2 *((unsigned volatile int *)0X40000438)
oid Stm32_Clock_Init(unsigned char PLL); void LED_Init(void);
void Delay(long counder); void TIM3_PWM_Init(void); init.c
void TIM3_PWM_Init() { RCC_APB1ENR|=1<<1; //TIM3时钟使能 RCC_APB2ENR|=1<<3; //使能PORTB时钟 GPIOB_CTRL&=0XFF0FFFFF; //PB5输出 GPIOB_CTRL|=0X00B00000; //复用功能输出 RCC_APB2ENR|=1<<0; //开启辅助时钟 AFIO_MAPR&=0XFFFFF3FF; //清除MAPR的[11:10] AFIO_MAPR|=1<<11; //部分重映像,TIM3_CH2->PB5 TIM3_ARR=899; //设定计数器自动重装值 TIM3_PSC=0; //预分频器不分频
TIM3_CCMR1|=7<<12; //CH2 PWM2模式 TIM3_CCMR1|=1<<11; //CH2预装载使能 TIM3_CCER|=1<<4; //OC2 输出使能 TIM3_CR1=0x0080; //ARPE使能 TIM3_CR1|=0x01; //使能定时器3 } Main.c
int main(void) { Stm32_Clock_Init(9); LED_Init();
TIM3_PWM_Init(); while(1) { for (val=0;val<=300;val++) { TIM3_CCR2=val; Delay(60000); } for (val=300;val>=0;val--) { TIM3_CCR2=val; Delay(60000); }
五、功能与结果分析;
正在阅读:
定时器PWM03-11
分户申请书范文10篇08-01
2015进口婴幼儿奶粉新品牌简介11-28
·文学体裁常识02-13
班主任70个临场应变技巧12-21
冠华再生科技集团公司全面预算管理办法05-17
科学管理是一次心理革命10-13
计算机应用基础教案实训课教案04-19
市场营销学平时作业答案10-01
苏教版科学四年级下册期末复习题10-19
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 定时器
- PWM
- 在全国两会期间信访稳定工作会议上的讲话
- 2014年度研究生国家奖学金学校推荐获奖学生公示
- 600MW汽轮机高压主汽门检修工艺 - 图文
- 机动车驾驶人员体检操作规范
- 深圳市可再生能源产业发展现状 - 图文
- 财务报表分析与决策习题
- 广西鑫磐工程项目管理有限责任公司
- 2014LA物理师试题及答案 - 图文
- 郑州大学《护理心理学》在线测试
- 物理化学 课后答案-热力学第一定律
- 城市管理执法大队养犬管理专项整治工作总结
- 《幼儿园教育评价》期末考试及答案
- 国际经济学历年真题
- 山东省济宁市微山县第一中学2012-2013学年高一下学期期末迎考模拟物理试题 Word版含答案
- 青岛海产品出口现状及问题
- 苏州市吴中区2015-2016年八年级上期中考试英语试题及答案
- 2018年陶瓷市场发展前景分析报告目录
- DOS批处理 教程精选 简单易懂
- SD30MT交流伺服说明书 - 图文
- 机械设计复习题(一)(答案)(1)