当前位置: 首页 > 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);


http://www.mrgr.cn/news/22411.html

相关文章:

  • 微带结环行器仿真分析+HFSS工程文件
  • 熬夜后补救措施
  • 第六届机器人与智能制造技术国际会议 (ISRIMT 2024)
  • idea创建SpringBoot项目
  • Linux 调度:进程调度时机
  • 自动驾驶ADAS算法--使用MATLBA和UE4生成测试视频
  • 全国糖酒会,就这5个字。“会天下美味”
  • JDBC:连接数据库
  • IP协议簇、HTTP协议一图简介
  • 苍穹外卖随记(一)
  • 前向渲染路径
  • 3.C_数据结构_栈
  • 我搞了一台switch
  • 【C++】STL学习——stack和queue的讲解(了解适配器)
  • OpenShift4 - 为 OpenShift Virtualization 的 VM 配置内存的策略
  • 华为OD机试真题- 矩阵扩散-2023年OD统一考试(B卷)
  • 两数之和--力扣1
  • 【分支-快速排序】
  • 树 --- 二叉树
  • 营养餐共享网站:项目规划Plan1