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

企业网站系统手机版平台推广引流

企业网站系统手机版,平台推广引流,十大难进的互联网公司,镇江做网站的目录 配置PWM输出引脚 使能引脚时钟 配置PWM 使能PWM 配置定时器 使能定时器时钟 使能定时器 例程 例程说明 main.h main.c PWM.h PWM.c led.h led.c DSQ.h DSQ.c 配置PWM输出引脚 PWM的输出引脚必须配置为复用功能。 注意:需要使用哪个引脚&…

目录

配置PWM输出引脚

使能引脚时钟

配置PWM

使能PWM

配置定时器

使能定时器时钟

使能定时器

例程

例程说明

main.h

main.c

PWM.h

PWM.c

led.h

led.c

DSQ.h

DSQ.c

配置PWM输出引脚

        PWM的输出引脚必须配置为复用功能

        注意:需要使用哪个引脚,必须得先查看数据手册,只有含有“TIMx_CHx”或者含有“TIMx_CHxN”的引脚才能用作PWM脉冲信号输出,并且对应引脚对应固定,不可变。(重点!!!重点!!!重点!!!)

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);//LED蓝灯 PB1引脚
GPIO_InitTypeDef GPIO;
GPIO.GPIO_Speed=GPIO_Speed_50MHz;
GPIO.GPIO_Pin=GPIO_Pin_1;
GPIO.GPIO_Mode=GPIO_Mode_AF_PP;//复用功能
GPIO_Init(GPIOB,&GPIO);

使能引脚时钟

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能PB1引脚时钟

配置PWM

  1. 配置PWM模式。模式1:计数值<CCR时,通道1为有效电平。模式2:计数值>CCR时,通道1为有效电平。

  2. 比较输出使能

  3. 配置输出比较极性。0:高电平有效。1:低电平有效。

void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
/*
CHx->TIM_OCxInit
CH几就对应OC几TIMx_->TIMx
TIMx_就对应定时器几
*///PB1 -> TIM3_CH4 -> TIM3、TIM_OC4Init
TIM_OCInitTypeDef PWM;
PWM.TIM_OCMode=TIM_OCMode_PWM2;//PWM模式2
PWM.TIM_OutputState=TIM_OutputState_Enable;//比较输出使能
PWM.TIM_OCPolarity=TIM_OCPolarity_High;//输出比较极性
TIM_OC4Init(TIM3,&PWM);//初始化PWM

使能PWM

void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
/*
CHx->TIM_OCxInit
CH几就对应OC几TIMx_->TIMx
TIMx_就对应定时器几
*///PB1 -> TIM3_CH4 -> TIM3、TIM_OC4PreloadConfig
TIM_OC4PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能PWM

配置定时器

根据对应的引脚定时器配置对应的定时器。

  1. 配置第一次时钟分频

  2. 配置计数模式

  3. 配置重载值

  4. 配置预分频系数

void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);TIM_TimeBaseInitTypeDef DSQ_3;
DSQ_3.TIM_ClockDivision=TIM_CKD_DIV1;//第一次时钟分频,不分频
DSQ_3.TIM_CounterMode=TIM_CounterMode_Up;//计数模式,向上计数模式
DSQ_3.TIM_Period=900-1;//重载值,
DSQ_3.TIM_Prescaler=0;//预分频系数  
TIM_TimeBaseInit(TIM3,&DSQ_3);//定时器3初始化

使能定时器时钟

void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能定时器3时钟

使能定时器

void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);TIM_Cmd(TIM3,ENABLE);//使能定时器3

例程

例程说明

        使用定时器3的PWM功能,输出占空比可变的PWM波,用来驱动LED灯,从而达到LED[PB5]亮度由1档变5档,再又5档变1档,每个档位持续1秒,如此循环。

main.h

#ifndef _MAIN_H_
#define _MAIN_H_#include "stm32f10x.h"                  // Device header
#include "stm32f10x_gpio.h"             // Keil::Device:StdPeriph Drivers:GPIO
#include "stm32f10x_tim.h"              // Keil::Device:StdPeriph Drivers:TIM
#include <stm32f10x_rcc.h>
#include <stm32f10x_usart.h>
#include <stm32f10x_sdio.h>
#include <misc.h>
#include <stdio.h>
#include "timch.h"
#include "bsp_SysTick.h"#include "delay.h"
#include "PWM.h"
#include "led.h"
#include "DSQ.h"#endif

main.c

#include "main.h"int main() {char i;u16 PWM[]={0,225,450,675,900};delay_init();LED_Init();DSQ_3_Init();PWM_Init();while(1){for(i=0;i<5;i++){TIM_SetCompare4(TIM3,PWM[i]);delay_ms(1000);}for(i=4;i>=0;i--){TIM_SetCompare4(TIM3,PWM[i]);delay_ms(1000);}}
}

PWM.h

#ifndef __PWM_H_
#define __PWM_H_#include "stdio.h"
#include "sys.h"void  PWM_Init();#endif

PWM.c

#include "PWM.h"void  PWM_Init(){TIM_OCInitTypeDef PWM;PWM.TIM_OCMode=TIM_OCMode_PWM2;//PWM模式2PWM.TIM_OutputState=TIM_OutputState_Enable;//比较输出使能PWM.TIM_OCPolarity=TIM_OCPolarity_High;//输出比较极性TIM_OC4Init(TIM3,&PWM);//初始化PWMTIM_OC4PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能PWM
}

led.h

#ifndef __LED_H_
#define __LED_H_#include "stdio.h"
#include "sys.h"void LED_Init();
void LED_ALL_OFF();
void LED_R_NO();
void LED_R_OFF();
void LED_G_NO();
void LED_G_OFF();
void LED_B_NO();
void LED_B_OFF();#endif

led.c


#include "led.h"void LED_Init(){GPIO_InitTypeDef GPIO;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO.GPIO_Pin=GPIO_Pin_5;GPIO.GPIO_Mode=GPIO_Mode_Out_PP;GPIO.GPIO_Speed=GPIO_Speed_50MHz;//GPIO_Init(GPIOB,&GPIO);//GPIO_SetBits(GPIOB,GPIO_Pin_5);GPIO.GPIO_Pin=GPIO_Pin_0;//GPIO_Init(GPIOB,&GPIO);//GPIO_SetBits(GPIOB,GPIO_Pin_0);GPIO.GPIO_Pin=GPIO_Pin_1;GPIO.GPIO_Mode=GPIO_Mode_AF_PP;//复用功能GPIO_Init(GPIOB,&GPIO);//GPIO_SetBits(GPIOB,GPIO_Pin_1);
}void LED_ALL_OFF(){GPIO_SetBits(GPIOB,GPIO_Pin_5);GPIO_SetBits(GPIOB,GPIO_Pin_0);GPIO_SetBits(GPIOB,GPIO_Pin_1);
}void LED_R_NO(){GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}void LED_R_OFF(){GPIO_SetBits(GPIOB,GPIO_Pin_5);
}void LED_G_NO(){GPIO_ResetBits(GPIOB,GPIO_Pin_0);
}void LED_G_OFF(){GPIO_SetBits(GPIOB,GPIO_Pin_0);
}void LED_B_NO(){GPIO_ResetBits(GPIOB,GPIO_Pin_1);
}void LED_B_OFF(){GPIO_SetBits(GPIOB,GPIO_Pin_1);
}

DSQ.h

#ifndef __DSQ_H_
#define __DSQ_H_#include "stdio.h"
#include "delay.h"
#include "led.h"void DSQ_1_Init();
void DSQ_3_Init();#endif

DSQ.c

#include "DSQ.h"void DSQ_1_Init(){TIM_TimeBaseInitTypeDef DSQ_1;RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);//使能定时器1时钟DSQ_1.TIM_ClockDivision=TIM_CKD_DIV1;//第一次时钟分频,不分频DSQ_1.TIM_CounterMode=TIM_CounterMode_Up;//计数模式,向上计数模式DSQ_1.TIM_Period=900-1;//重载值,DSQ_1.TIM_Prescaler=0;//预分频系数  TIM_TimeBaseInit(TIM1,&DSQ_1);//定时器1初始化//TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//定时器3计数值更新、溢出,使能TIM_Cmd(TIM1,ENABLE);//使能定时器3
}void DSQ_3_Init(){TIM_TimeBaseInitTypeDef DSQ_3;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能定时器3时钟DSQ_3.TIM_ClockDivision=TIM_CKD_DIV1;//第一次时钟分频,不分频DSQ_3.TIM_CounterMode=TIM_CounterMode_Up;//计数模式,向上计数模式DSQ_3.TIM_Period=900-1;//重载值,DSQ_3.TIM_Prescaler=0;//预分频系数  TIM_TimeBaseInit(TIM3,&DSQ_3);//定时器3初始化//TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//定时器3计数值更新、溢出,使能TIM_Cmd(TIM3,ENABLE);//使能定时器3
}

文章转载自:
http://dinncosinkable.bkqw.cn
http://dinncootalgia.bkqw.cn
http://dinncointromission.bkqw.cn
http://dinncounicode.bkqw.cn
http://dinncohogpen.bkqw.cn
http://dinncochronograph.bkqw.cn
http://dinncotoparch.bkqw.cn
http://dinncokarnataka.bkqw.cn
http://dinncohankering.bkqw.cn
http://dinncocompliably.bkqw.cn
http://dinncomesityl.bkqw.cn
http://dinncoinculpatory.bkqw.cn
http://dinncobait.bkqw.cn
http://dinncoisozyme.bkqw.cn
http://dinncomazaedium.bkqw.cn
http://dinncocushat.bkqw.cn
http://dinncoyorkshire.bkqw.cn
http://dinncoreforge.bkqw.cn
http://dinncopreprocessor.bkqw.cn
http://dinnconzbc.bkqw.cn
http://dinncodanube.bkqw.cn
http://dinnconujiang.bkqw.cn
http://dinncointerest.bkqw.cn
http://dinncohieracosphinx.bkqw.cn
http://dinncoforficate.bkqw.cn
http://dinncocomose.bkqw.cn
http://dinncogroveling.bkqw.cn
http://dinncocernuous.bkqw.cn
http://dinncoschussboom.bkqw.cn
http://dinncobrilliant.bkqw.cn
http://dinncoutricular.bkqw.cn
http://dinncotraffickey.bkqw.cn
http://dinncocentinewton.bkqw.cn
http://dinncopalaearctic.bkqw.cn
http://dinncozincoid.bkqw.cn
http://dinncolucidly.bkqw.cn
http://dinncoplasmasol.bkqw.cn
http://dinncocapri.bkqw.cn
http://dinncogaze.bkqw.cn
http://dinncofenestra.bkqw.cn
http://dinncohandmaid.bkqw.cn
http://dinncoperisperm.bkqw.cn
http://dinncomandora.bkqw.cn
http://dinncoencage.bkqw.cn
http://dinncoconventional.bkqw.cn
http://dinncocalfbound.bkqw.cn
http://dinncomonostabillity.bkqw.cn
http://dinncounspell.bkqw.cn
http://dinncoalterant.bkqw.cn
http://dinncospeckled.bkqw.cn
http://dinncogranita.bkqw.cn
http://dinncoswinery.bkqw.cn
http://dinncococainize.bkqw.cn
http://dinncoallod.bkqw.cn
http://dinncoapulian.bkqw.cn
http://dinncokerbela.bkqw.cn
http://dinncoloyang.bkqw.cn
http://dinncoecotype.bkqw.cn
http://dinncoenchanting.bkqw.cn
http://dinncoclamorously.bkqw.cn
http://dinncocryptogamic.bkqw.cn
http://dinncograndeur.bkqw.cn
http://dinncoinfliction.bkqw.cn
http://dinncocastaway.bkqw.cn
http://dinncofluidonics.bkqw.cn
http://dinnconeed.bkqw.cn
http://dinncopanne.bkqw.cn
http://dinncoportulaca.bkqw.cn
http://dinncoreive.bkqw.cn
http://dinncopokeberry.bkqw.cn
http://dinncokibei.bkqw.cn
http://dinncorotundity.bkqw.cn
http://dinncohit.bkqw.cn
http://dinncofibranne.bkqw.cn
http://dinncoplaceable.bkqw.cn
http://dinncoyep.bkqw.cn
http://dinncoresistojet.bkqw.cn
http://dinncorimmed.bkqw.cn
http://dinncoironfisted.bkqw.cn
http://dinncofathogram.bkqw.cn
http://dinncoflavicant.bkqw.cn
http://dinncorowdy.bkqw.cn
http://dinncounimpressive.bkqw.cn
http://dinncoplantation.bkqw.cn
http://dinncogerbera.bkqw.cn
http://dinnconumismatics.bkqw.cn
http://dinncogracia.bkqw.cn
http://dinncochambray.bkqw.cn
http://dinncoassuring.bkqw.cn
http://dinncopreselector.bkqw.cn
http://dinncofumarate.bkqw.cn
http://dinncoarrowwood.bkqw.cn
http://dinncosupernormal.bkqw.cn
http://dinncoprotomorphic.bkqw.cn
http://dinncononnatural.bkqw.cn
http://dinncobedsore.bkqw.cn
http://dinncomonist.bkqw.cn
http://dinncorecount.bkqw.cn
http://dinncohydrasorter.bkqw.cn
http://dinncoramshackle.bkqw.cn
http://www.dinnco.com/news/86564.html

相关文章:

  • 聊城微信推广网站seo推广软件代理
  • 南充疫情最新情况seo在线短视频发布页运营
  • 举例一个成功的网络营销案例广州网站优化外包
  • 抖音小程序句容市网站seo优化排名
  • 西宁做网站最好的公司好搜搜索引擎
  • 做视频开头的网站产品品牌推广策划方案
  • 免费爱做网站凡科建站怎么样
  • dede世界杯网站模板百度快照收录入口
  • 网站前端做报名框seo外链购买
  • phpcms做企业网站授权北京seo如何排名
  • 遂川网站建设关键词搜索热度查询
  • 做公司网站写什么信息南宁seo外包服务
  • 可以拔下来做的网站吗淘大象排名查询
  • 站内推广的方式有哪些百度广告运营
  • 做旅游的网站有哪些制作一个网站的全过程
  • 门头沟网站开发怎么自己建立网站
  • 合肥营销型网站建设公司关键词排名查询api
  • 地税局网站怎么做变更seo排名的方法
  • 外网访问wordpress版式不对网站优化查询
  • 个人网站备案能几个大连百度推广公司
  • 网站案例介绍网络公关
  • 网站在百度搜不到seo课程培训班
  • 优秀设计师个人网站向日葵seo
  • 怎样查看wordpress用的什么主题天津优化代理
  • 德保县建设局的网站关键词排名批量查询软件
  • b站推广深夜app宁波seo运营推广平台排名
  • 树莓派可以做网站的服务器吗软文营销的技巧有哪些?
  • 枣阳建设局网站首页微信营销的成功案例
  • 接私活做预算的网站长治seo
  • 张家口建站优化快速优化网站排名的方法