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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3655|回復: 0
打印 上一主題 下一主題
收起左側

stm32通過TMI2和tim3產生6路pwm波的源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:267266 發表于 2017-12-26 18:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源程序如下:
  1. #include "TIM_pwm_output.h"

  2.         /**
  3.                 * @brief  配置TIM2和TIM3時復用輸出PWM時用到的I/O
  4.                 * @param  無
  5.                 * @retval 無
  6.   */
  7. static void TIM_GPIO_Config(void)
  8. {
  9.         GPIO_InitTypeDef GPIO_InitStructure;
  10.         /*設置TIM2CLK和TIM3CLk 為72MHZ*/
  11.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3, ENABLE);
  12.         /* GPIOA clock enable */
  13.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
  14.         /*GPIOA Configuration: TIM2 channel 1 2 3 4 6 and 7
  15.         as alternate function push-pull */
  16.         GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_0 | GPIO_Pin_1|
  17.         GPIO_Pin_2| GPIO_Pin_3|GPIO_Pin_6 | GPIO_Pin_7;
  18.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                    // 復用推挽輸出
  19.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  20.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  21. }

  22.         /**
  23.                 * @brief  配置TIM2、TIM3輸出的PWM信號的模式,如周期,極性,占空比
  24.                 * @param  無
  25.                 * @retval 無
  26.         */
  27.         /*
  28.                  * TIMxCLK/CK_PSC --> TIMxCNT --> TIMx_ARR --> TIMxCNT 重新計數
  29.                  *                    TIMx_CCR(電平發生變化)
  30.                  * 信號周期=(TIMx_ARR +1 ) * 時鐘周期
  31.                  * 占空比=TIMx_CCR/(TIMx_ARR +1)
  32.         */
  33. static void TIM_Mode_Config(void)
  34. {
  35.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  36.         TIM_OCInitTypeDef  TIM_OCInitStructure;

  37.         /* 初始化PWM信號電平 */
  38.         u16 CCR1_Val = 0;        
  39.         u16 CCR2_Val = 0;
  40.         u16 CCR3_Val = 0;
  41.         u16 CCR4_Val = 0;
  42.         u16 CCR5_Val = 0;
  43.         u16 CCR6_Val = 0;

  44.         /* Time base configuration */                 
  45.         TIM_TimeBaseStructure.TIM_Period = 999;  //當定時器計數1000次,為一個周期
  46.         TIM_TimeBaseStructure.TIM_Prescaler = 5; //設置預分頻,預分頻為5,pwm頻率為12KHZ
  47.         /* 設置時鐘分頻系數 */
  48.         TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;       
  49.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計數模式
  50.         TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
  51.         TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

  52.         /* PWM1 Mode configuration: Channel1 */
  53.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //配置為PWM模式1
  54.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  55.         TIM_OCInitStructure.TIM_Pulse = CCR1_Val;
  56.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  
  57.         TIM_OC1Init(TIM2, &TIM_OCInitStructure);         //使能通道1
  58.         TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);

  59.   /* PWM1 Mode configuration: Channel2 */
  60.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  61.         TIM_OCInitStructure.TIM_Pulse = CCR2_Val;          
  62.         TIM_OC2Init(TIM2, &TIM_OCInitStructure);          //使能通道2
  63.   TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);

  64.         /* PWM1 Mode configuration: Channel3 */
  65.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  66.         TIM_OCInitStructure.TIM_Pulse = CCR3_Val;       
  67.         TIM_OC3Init(TIM2, &TIM_OCInitStructure);         //使能通道3
  68.         TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);

  69.         /* PWM1 Mode configuration: Channel4 */
  70.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  71.         TIM_OCInitStructure.TIM_Pulse = CCR4_Val;       
  72.         TIM_OC4Init(TIM2, &TIM_OCInitStructure);        //使能通道4
  73.         TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);
  74.         TIM_ARRPreloadConfig(TIM2, ENABLE);                // 使能TIM2重載寄存器ARR
  75.        
  76.         /* PWM1 Mode configuration: Channel5 */
  77.   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  78.   TIM_OCInitStructure.TIM_Pulse = CCR5_Val;             
  79.         TIM_OC1Init(TIM3, &TIM_OCInitStructure);         //使能通道5
  80.   TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);

  81.   /* PWM1 Mode configuration: Channel6 */
  82.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  83.   TIM_OCInitStructure.TIM_Pulse = CCR6_Val;            
  84.         TIM_OC2Init(TIM3, &TIM_OCInitStructure);          //使能通道6
  85.   TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
  86.         TIM_ARRPreloadConfig(TIM3, ENABLE);                         // 使能TIM3重載寄存器ARR

  87.   /* TIM2 and TIM3 enable counter */
  88.         TIM_Cmd(TIM2, ENABLE);                   //使能定時器2       
  89.         TIM_Cmd(TIM3, ENABLE);                   //使能定時器3
  90. }

  91. void TIM_PWM_Init(void)//
  92. {
  93.         TIM_GPIO_Config();
  94.         TIM_Mode_Config();       
  95. }

  96. void TIM_PWM1_Update(double n)
  97. {
  98.         u16 CCR1_Val = n*999;
  99.         TIM_SetCompare1(TIM2, CCR1_Val);
  100. }

  101. void TIM_PWM2_Update(double n)
  102. {
  103.         u16 CCR2_Val = n*999;
  104.         TIM_SetCompare2(TIM2, CCR2_Val);
  105. }

  106. void TIM_PWM3_Update(double n)
  107. {
  108.         u16 CCR3_Val = n*999;
  109.         TIM_SetCompare3(TIM2, CCR3_Val);
  110. }

  111. void TIM_PWM4_Update(double n)
  112. ……………………

  113. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
stm32f10x_temple-nb-1401011140.zip (672.48 KB, 下載次數: 63)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久天天躁狠狠躁夜夜躁2014 | 国产成人免费视频网站高清观看视频 | 99在线国产 | 久久久久国产成人精品亚洲午夜 | 精品中文字幕在线观看 | 精品国产99 | 国产精品成人国产乱一区 | 亚洲国产二区 | 国产一区二区影院 | 久久亚洲综合 | 夜夜操天天艹 | 国产成人免费视频网站高清观看视频 | 免费在线观看一区二区 | 久久精品aaa | 日韩在线免费视频 | 大陆一级毛片免费视频观看 | 亚洲国产精品99久久久久久久久 | 日韩成人免费视频 | 国产欧美一区二区三区另类精品 | 国产精品成人一区二区三区 | 国产精品欧美大片 | 亚洲一二三在线 | 国产精品国产成人国产三级 | 91午夜在线 | 国产精久久久久久久妇剪断 | 久久久久国产精品一区二区 | 精品乱人伦一区二区三区 | 91九色在线观看 | 精品一区二区电影 | 亚洲第一网站 | 午夜一区二区三区 | 久久久久国产一区二区三区 | 亚洲精品在线免费 | 在线观看黄色电影 | 美女一级毛片 | 一级二级三级黄色 | 啪啪综合网 | 成人精品鲁一区一区二区 | 欧美lesbianxxxxhd视频社区 | 国产性网 | 一区二区三区欧美在线 |