PWM(蜂鸣器)框图

通过分析框图可知

1.分析RCC章节:相关控制器组使能

2.分析GPIO章节:复用模式/复用功能TIM4_CH1

3.分析TIM4章节:产生特定的方波

定时器工作原理

定时器工作原理:

1.当定时器启动之后,自动重载计数器中的值,会自动加载到递减计数器中

2.递减计数器在CK_CNT时钟驱动下进行工作

3.每来一个时钟周期,递减计数器中的值减1

4.当递减计数器中的值减到0的时候,自动重载计数器中的值,会再次自动加载到递减计数器中 --------------------如何产生PWM方波(比较/捕获寄存器)--------------------

1.当定时器启动之后,自动重载计数器中的值,会自动加载到递减计数器中

2.递减计数器在CK_CNT时钟驱动下进行工作

3.每来一个时钟周期,递减计数器中的值减1

4.如果减到和比较/捕获寄存器中的值相等之后,电平发生翻转,这样就可产生PWM方波信号

pwm.h

#ifndef __PWM_H__
#define __PWM_H__
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_tim.h"//蜂鸣器初始化 pb6-tim4_ch1
void tim_init();
//马达初始化   pf6-tim16_ch1
void mada_init();
//风扇初始化 pe9-time1_ch1
void fan_init();#endif

pwm.c

#include "pwm.h"
void tim_init()
{//RCC_INITRCC->MP_AHB4ENSETR |= (0x1<<1);RCC->MP_APB1ENSETR |= (0x1<<2);//GPIO_INITGPIOB->MODER &= (~(0x3<<12));GPIOB->MODER |= (0x2<<12);GPIOB->AFRL &= (~(0xf<<24));GPIOB->AFRL |= (0x2<<24);//TIM_INIT//设置分频器TIM4->PSC = (208);//设PWM方波占空比 对比较/捕获寄存器进行赋值TIM4->CCR1 =(700);//设置PWM方波最终周期TIM4->ARR =(1000);TIM4->CR1 |= (0x1<<7);TIM4->CR1 &= (~(0x3<<5));TIM4->CR1 |=(0x1<<4);TIM4->CR1 |=(0x1<<0);TIM4->CCMR1 &=(~(0x1<<16));TIM4->CCMR1 &=(~(0x7<<4));TIM4->CCMR1 |=(0x6<<4);TIM4->CCMR1 |=(0x1<<3);TIM4->CCMR1 &=(~(0x3<<0));TIM4->CCER &=(~(0x1<<3));TIM4->CCER &=(~(0x1<<1));TIM4->CCER |=(0x1<<0);}
//马达初始化   pf6-tim16_ch1
void mada_init()
{RCC->MP_AHB4ENSETR |=0X1<<5;                    RCC->MP_APB2ENSETR |=0X1<<3;                    GPIOF->MODER &=(~(0X3<<12));                    GPIOF->MODER |=(0X1<<13);                       GPIOF->AFRL &=(~(0XF<<24));                     GPIOF->AFRL |=0X1<<24;  //TIM_INIT//设置分频器TIM16->PSC = (208);//设置PWM方波最终周期TIM16->CCR1 =(700);//设PWM方波占空比 对比较/捕获寄存器进行赋值TIM16->ARR =(1000);TIM16->CR1 |= (0x1<<7);TIM16->CR1 &= (~(0x3<<5));TIM16->CR1 |=(0x1<<4);TIM16->CR1 |=(0x1<<0);TIM16->CCMR1 &=(~(0x1<<16));TIM16->CCMR1 &=(~(0x7<<4));TIM16->CCMR1 |=(0x6<<4);TIM16->CCMR1 |=(0x1<<3);TIM16->CCMR1 &=(~(0x3<<0));TIM16->CCER &=(~(0x1<<3));TIM16->CCER &=(~(0x1<<1));TIM16->CCER |=(0x1<<0);TIM16->BDTR |=(0x1<<15);}
//风扇初始化 pe9-time1_ch1
void fan_init()
{RCC->MP_AHB4ENSETR |=0X1<<4;                    RCC->MP_APB2ENSETR |=0X1<<0;                    GPIOE->MODER &=(~(0X3<<18));                    GPIOE->MODER |=(0X1<<19);                       GPIOE->AFRH &=(~(0XF<<4));                     GPIOE->AFRH |=0X1<<4;  //TIM_INIT//设置分频器TIM1->PSC = (208);//设置PWM方波最终周期TIM1->CCR1 =(700);//设PWM方波占空比 对比较/捕获寄存器进行赋值TIM1->ARR =(1000);TIM1->CR1 |= (0x1<<7);TIM1->CR1 &= (~(0x3<<5));TIM1->CR1 |=(0x1<<4);TIM1->CR1 |=(0x1<<0);TIM1->CCMR1 &=(~(0x1<<16));TIM1->CCMR1 &=(~(0x7<<4));TIM1->CCMR1 |=(0x6<<4);TIM1->CCMR1 |=(0x1<<3);TIM1->CCMR1 &=(~(0x3<<0));TIM1->CCER &=(~(0x1<<3));TIM1->CCER &=(~(0x1<<1));TIM1->CCER |=(0x1<<0);TIM1->BDTR |=(0x1<<15);}

main.c

#include "pwm.h"extern void printf(const char *fmt, ...);void delay_ms(int ms){int i,j;for(i = 0; i < ms;i++)for (j = 0; j < 1800; j++);}int main(){tim_init();mada_init();fan_init();while(1){}return 0;}

底层10.2——PWM实验复习相关推荐

  1. 10.2国庆作业(PWM实验)

    文章目录 作业内容 思路分析 1. 电路分析 2. RCC章节分析 3. GPIO章节分析 4. TIM4章节分析(以蜂鸣器为例) 代码实现 pwm.h pwm.c main.c 作业内容 完成PWM ...

  2. 6、英飞凌-AURIX-TC3XX: PWM实验之使用 GTM -ATOM 实现

    目录 6.英飞凌-AURIX-TC3XX: PWM实验之使用 GTM -ATOM 实现 1.ATOM 简介 2.ATOM子模块的框架 3.ATOM 通道的五种操作模式: 4.ATOM通道结构 5.AR ...

  3. 5、英飞凌-AURIX-TC3X7: PWM实验之使用 GTM -TOM 实现

    目录 5.英飞凌-AURIX-TC3X7: PWM实验之使用 GTM -TOM 实现 1.GTM -TOM简介 2.TOM框图 3.TOM全局通道控制--TGC0, TGC1 4.实验简介 4.1.实 ...

  4. 南京邮电大学matlab实验报告,南邮电工电子实验复习资料与试卷概要

    <南邮电工电子实验复习资料与试卷概要>由会员分享,可在线阅读,更多相关<南邮电工电子实验复习资料与试卷概要(19页珍藏版)>请在金锄头文库上搜索. 1. 南京邮电大学电工电子实 ...

  5. ARM接口实验-PWM实验

    一.PWM概念 1.PWM:脉冲宽度调制定时器 2.脉冲:方波信号,高低电平的变化产生方波信号 3.周期:高低电平变化所需要的时间,单位:ms 4.频率:周期和频率之间是倒数关系,1S钟可以产生的多少 ...

  6. 史上最著名的10个思想实验 (转)

    想过什么是哲学吗?可能大家都不是很说的清楚.看看下面这些"史上最著名的10个思想实验",可能你对哲学会有自己的理解了. 10.电车难题(The Trolley Problem) & ...

  7. 基于STM32MP157A的蜂鸣器,马达,震动马达PWM实验

    PWM实验 PWM概念 代码实现 pwm.c pwm.h main.c PWM概念 1.PWM:脉冲宽度调制定时器 2.脉冲:方波信号,高低电平的变化产生方波信号 3.周期:高低电平变化所需要的时间, ...

  8. 【思科CCNA理论专题:10】--ACL实验扩展-晁海江-专题视频课程

    [思科CCNA理论专题:10]--ACL实验扩展-5661人已学习 课程介绍         更多课程,请百度搜索"晁海江". 策略有很多,在前面的CCNP视频中,已经做过路由映射 ...

  9. c语言知识点演讲,C语言实验复习资料讲课讲稿.doc

    实验三 顺序结构和输入输出 3.编写程序.用getchar函数读入两个字符C1,C2,然后分别用putchar函数和printf函数输出这两个字符.并思考以下问题. 3-4 请回答书中问题 问题(1) ...

最新文章

  1. [Git] 写文章 史上最全文献检索、阅读及管理攻略
  2. ASP.NET.4.5.1+MVC5.0系统角色和权限讲解
  3. haskell读写文件相关(含二进制)
  4. java string blog_StringUtils方法全集
  5. java进程内存一直没释放_面试官:一个线程OOM,进程里其他线程还能运行么?...
  6. linux centos7安装ngix,centos7 环境下安装nginx--Linux
  7. apache ab压力测试报错
  8. 建筑设计 - 概念设计 - 笔记:- 第一章
  9. 浅谈Hybrid技术的设计与实现第二弹
  10. GNU ARM汇编--(五)中断汇编之嵌套中断处理
  11. 清华姚班和100个张小龙
  12. simulink——产生阶梯波
  13. 大数据分布式数据库系统介绍
  14. Springboot+MySQL实现多数据源的信息导入
  15. 全国计算机等级一级b真题,2011年3月全国计算机等级考试一级B真题及参考答案.doc...
  16. 实现微信小程序与微信生态的互相跳转H5入口
  17. DOTween的使用
  18. python123注册登录_用Python实现web端用户登录和注册功能的教程
  19. 《数据结构与抽象:Java语言描述(原书第4版)》一2.1.7 删除项的方法
  20. PS仔细抠图(头发处的处理)

热门文章

  1. 软件测试面试中的生活物品测试题有哪些?怎么回答?
  2. python爬虫实例之爬取智联招聘数据
  3. 河南中考计算机考试打字内容,河南中考全部实行网上阅卷,这些事你必须知道...
  4. AI免费生成3D卡通头像,真香~
  5. MTK CCT之CAMERA TUNNING调试学习总结
  6. 华为OD机试 - 租车骑绿岛(JS)
  7. windows7安装用于mysql的diesel的坑
  8. 减肥第四天,四级倒数第2天
  9. 春晚部门节目《传奇》剧本
  10. AQS之公平锁和非公平锁