当前位置: 首页 > news >正文

基于stm32f407的pwm输出以及初始化(84mhz)

一.pwm的初始化

pwm.c

#include "pwm.h"
#include "led.h"
#include "usart.h"//TIM14 PWM²¿·Ö³õʼ»¯ 
//PWMÊä³ö³õʼ»¯
//arr£º×Ô¶¯ÖØ×°Öµ
//psc£ºÊ±ÖÓÔ¤·ÖƵÊý
void TIM14_PWM_Init(u32 arr,u32 psc)  //
{		 					 //´Ë²¿·ÖÐèÊÖ¶¯ÐÞ¸ÄIO¿ÚÉèÖÃGPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;TIM_OCInitTypeDef  TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);  	//TIM14ʱÖÓʹÄÜ    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); 	//ʹÄÜPORTFʱÖÓ	GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14); //GPIOF9¸´ÓÃΪ¶¨Ê±Æ÷14GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;           //GPIOF9GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //¸´Óù¦ÄÜGPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;	//ËÙ¶È100MHzGPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //ÍÆÍ츴ÓÃÊä³öGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;        //ÉÏÀ­GPIO_Init(GPIOF,&GPIO_InitStructure);              //³õʼ»¯PF9TIM_TimeBaseStructure.TIM_Prescaler=psc;  //¶¨Ê±Æ÷·ÖƵTIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //ÏòÉϼÆÊýģʽTIM_TimeBaseStructure.TIM_Period=arr;   //×Ô¶¯ÖØ×°ÔØÖµTIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM14,&TIM_TimeBaseStructure);//³õʼ»¯¶¨Ê±Æ÷14//³õʼ»¯TIM14 Channel1 PWMģʽ	 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //Ñ¡Ôñ¶¨Ê±Æ÷ģʽ:TIMÂö³å¿í¶Èµ÷ÖÆģʽ2   ͨµÀ1TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±È½ÏÊä³öʹÄÜTIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //Êä³ö¼«ÐÔ:TIMÊä³ö±È½Ï¼«ÐÔ¸ßTIM_OC1Init(TIM14, &TIM_OCInitStructure);  //¸ù¾ÝTÖ¸¶¨µÄ²ÎÊý³õʼ»¯Íâ333333333333333ÉèTIM1 4OC1TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable);  //ʹÄÜTIM14ÔÚCCR1ÉϵÄԤװÔؼĴæÆ÷TIM_ARRPreloadConfig(TIM14,ENABLE);//ARPEʹÄÜ TIM_Cmd(TIM14, ENABLE);  //ʹÄÜTIM14}  void TIM13_PWM_Init(u32 arr,u32 psc)
{		 					 //´Ë²¿·ÖÐèÊÖ¶¯ÐÞ¸ÄIO¿ÚÉèÖÃGPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;TIM_OCInitTypeDef  TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM13,ENABLE);  	//TIM13ʱÖÓʹÄÜ    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); 	//ʹÄÜPORTFʱÖÓ	GPIO_PinAFConfig(GPIOF,GPIO_PinSource8,GPIO_AF_TIM13); //GPIOF8¸´ÓÃΪ¶¨Ê±Æ÷13GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;           //GPIOF8GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //¸´Óù¦ÄÜGPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;	//ËÙ¶È100MHzGPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //ÍÆÍ츴ÓÃÊä³öGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;        //ÉÏÀ­GPIO_Init(GPIOF,&GPIO_InitStructure);              //³õʼ»¯PF8TIM_TimeBaseStructure.TIM_Prescaler=psc;  //¶¨Ê±Æ÷·ÖƵTIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //ÏòÉϼÆÊýģʽTIM_TimeBaseStructure.TIM_Period=arr;   //×Ô¶¯ÖØ×°ÔØÖµTIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM13,&TIM_TimeBaseStructure);//³õʼ»¯¶¨Ê±Æ÷13//³õʼ»¯TIM13 Channel1 PWMģʽ	 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //Ñ¡Ôñ¶¨Ê±Æ÷ģʽ:TIMÂö³å¿í¶Èµ÷ÖÆģʽ2   ͨµÀ1TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±È½ÏÊä³öʹÄÜTIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //Êä³ö¼«ÐÔ:TIMÊä³ö±È½Ï¼«ÐÔ¸ßTIM_OC1Init(TIM13, &TIM_OCInitStructure);  //¸ù¾ÝTÖ¸¶¨µÄ²ÎÊý³õʼ»¯Íâ333333333333333ÉèTIM1 4OC1TIM_OC1PreloadConfig(TIM13, TIM_OCPreload_Enable);  //ʹÄÜTIM13ÔÚCCR1ÉϵÄԤװÔؼĴæÆ÷TIM_ARRPreloadConfig(TIM13,ENABLE);//ARPEʹÄÜ TIM_Cmd(TIM13, ENABLE);  //ʹÄÜTIM13}  
#ifndef _TIMER_H
#define _TIMER_H
#include "sys.h"
//	 
//±¾³ÌÐòÖ»¹©Ñ§Ï°Ê¹Óã¬Î´¾­×÷ÕßÐí¿É£¬²»µÃÓÃÓÚÆäËüÈκÎÓÃ;
//ALIENTEK STM32F407¿ª·¢°å
//¶¨Ê±Æ÷ Çý¶¯´úÂë	   
//ÕýµãÔ­×Ó@ALIENTEK
//¼¼ÊõÂÛ̳:www.openedv.com
//´´½¨ÈÕÆÚ:2014/6/16
//°æ±¾£ºV1.0
//°æȨËùÓУ¬µÁ°æ±Ø¾¿¡£
//Copyright(C) ¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾ 2014-2024
//All rights reserved									  
// 	void TIM14_PWM_Init(u32 arr,u32 psc);
void TIM13_PWM_Init(u32 arr,u32 psc);#endif

二设定初始值和分频系数

	TIM13_PWM_Init(8400-1,42-1);           //×óÂÖTIM14_PWM_Init(8400-1,42-1);	         //ÓÒÂÖ

三设定初值

	TIM_SetCompare1(TIM14,0);TIM_SetCompare1(TIM13,0);

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 电影、视频拍摄基础知识 | 所有岗位及职能描述、任职要求速览
  • LC1860C 后来怎么样了
  • 浅谈人工智能之python调用通义千问API
  • 深入解析MySQL索引的使用及优化
  • gitlab 启动/关闭/启用开机启动/禁用开机启动
  • 前端HTML基础笔记
  • 6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)
  • 8. GIS数据分析师岗位职责、技术要求和常见面试题
  • 深度学习中常见的权重参数初始化方法
  • argodb自定义函数读取hdfs文件的注意点,避免FileSystem已关闭异常
  • C++手记
  • C语言深度剖析--不定期更新的第五弹
  • HCIA--实验十一:单区域OSPF路由实验
  • maven配置文件常用模板
  • 小琳AI课堂:深入学习BERT
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【Leetcode】104. 二叉树的最大深度
  • ES6系统学习----从Apollo Client看解构赋值
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java 内存分配及垃圾回收机制初探
  • js继承的实现方法
  • mysql innodb 索引使用指南
  • Promise面试题2实现异步串行执行
  • React Native移动开发实战-3-实现页面间的数据传递
  • Sass Day-01
  • STAR法则
  • Vue.js-Day01
  • Vue.js源码(2):初探List Rendering
  • 百度地图API标注+时间轴组件
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 服务器从安装到部署全过程(二)
  • 聊聊flink的BlobWriter
  • 使用 @font-face
  • 使用common-codec进行md5加密
  • 使用SAX解析XML
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 算法-插入排序
  • 优化 Vue 项目编译文件大小
  • 怎么将电脑中的声音录制成WAV格式
  • 自制字幕遮挡器
  • 第二十章:异步和文件I/O.(二十三)
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • # Redis 入门到精通(九)-- 主从复制(1)
  • ######## golang各章节终篇索引 ########
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (pojstep1.1.2)2654(直叙式模拟)
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)计算机毕业设计ssm电影分享网站
  • (六)Hibernate的二级缓存