久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3129|回復: 0
收起左側

STM32的PWM輸出例程

[復制鏈接]
ID:82083 發表于 2015-6-9 02:03 | 顯示全部樓層 |閱讀模式
                        閱讀了ALIENTEK MINI板的PWM實驗例程,感覺可以簡化一下,簡化后如下:
(其中工程里面的delay.c和delay.h可以在配套光盤里找也可以網上下載)
--------------------------------------------------------------
初始化文件,可以隨意命名,在此命名為Timer3PWM.c
--------------------------------------------------------------
#include "stm32f10x.h"

//arr:自動重裝值   psc:時鐘預分頻數
void TIM3_PWM_Init(u16 arr,u16 psc)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
  TIM_OCInitTypeDef TIM_OCInitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能定時器3時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|
                        RCC_APB2Periph_AFIO,ENABLE);//使能GPIO和服用功能時鐘

  GPIO_InitStructure.GPIO_Pin =GPIO_Pin_7;  //PWM輸出在PA7
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
  GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIO

   GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8; //PA8連DS0
  //為防止PA8的輸出干擾DS0的顯示,應配置PA8為浮空輸入
   GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOA,&GPIO_InitStructure);

  TIM_TimeBaseStructure.TIM_Period = arr;//設置自動重裝載周期值
  TIM_TimeBaseStructure.TIM_Prescaler = psc;//設置預分頻值
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;//設置時鐘分割
  TIM_TimeBaseStructure.TIM_CounterMode =TIM_CounterMode_Up; //向上計數模式
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);//初始化TIM3

  TIM_OCInitStructure.TIM_OCMode =TIM_OCMode_PWM2; //選擇PWM模式2
  TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Enable; //比較輸出使能
  TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_High; //輸出極性高
TIM_OC2Init(TIM3,&TIM_OCInitStructure);//初始化外設TIM3OC2

  TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能預裝載寄存器
  TIM_Cmd(TIM3,ENABLE); //使能TIM3
}
void NVIC_Config(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:
                                                  // 2位搶占優先級,2位響應優先級
}
-----------------------------------------------------------------------------
主函數,命名為main.c
-----------------------------------------------------------------------------

#include"stm32f10x.h"
#include "delay.h"
#include "timer3PWM.h"
void main(void)
{
  u16 ledpwmval = 0;
  u8 dir = 1;
   delay_init(72);//時鐘延時初始化
   TIM3_PWM_Init(899,0);//PWM頻率72000/900 = 8KHz
   NVIC_Config();//設置NVIC中斷分組
   while(1)
   {
    delay_ms(10);
    if(dir)
      ledpwmval++;
    else
      ledpwmval--;
    if(ledpwmval > 300)
      dir = 0;
    if(ledpwmval == 0)
      dir = 1;
    TIM_SetCompare2(TIM3,ledpwmval);
   }
}
(記得把PA7和PA8短接)


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩手机在线视频 | 午夜免费剧场 | 伊人干综合 | 91av免费在线观看 | 黄色直接看 | 狠狠干狠狠干 | 欧美精品入口蜜桃 | 91亚洲成人| 日韩在线视频观看 | 国产一级片在线播放 | 国产日韩欧美在线 | 狠狠干狠狠操 | 天天色影院 | 亚洲精品欧美 | 亚洲一区中文 | 精品免费视频 | 日韩一区二区免费视频 | 午夜xxx | 三级黄色片免费看 | 黄色网址在线播放 | www黄色片 | 51调教丨国产调教视频 | 国内精品一区二区 | 久久黄色免费视频 | 亚洲欧美日韩一区 | 免费毛片网站 | 99久久久国产精品免费蜜臀 | 亚洲人成在线观看 | 午夜在线视频观看日韩17c | www.日本高清 | 久久综合国产 | 免费观看一区二区三区毛片 | 国产成人免费在线观看 | 人人艹人人爱 | 五月综合色 | 天天精品视频 | 国产精品久久久久久久久久久久久久 | 激情网站在线观看 | 国产精品久久网 | 亚洲三级av| 在线a视频 |