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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3571|回復(fù): 0
收起左側(cè)

stm32通過TMI2和tim3產(chǎn)生6路pwm波的源碼

[復(fù)制鏈接]
ID:267266 發(fā)表于 2017-12-26 18:06 | 顯示全部樓層 |閱讀模式
單片機(jī)源程序如下:
  1. #include "TIM_pwm_output.h"

  2.         /**
  3.                 * @brief  配置TIM2和TIM3時(shí)復(fù)用輸出PWM時(shí)用到的I/O
  4.                 * @param  無
  5.                 * @retval 無
  6.   */
  7. static void TIM_GPIO_Config(void)
  8. {
  9.         GPIO_InitTypeDef GPIO_InitStructure;
  10.         /*設(shè)置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;                    // 復(fù)用推挽輸出
  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 重新計(jì)數(shù)
  29.                  *                    TIMx_CCR(電平發(fā)生變化)
  30.                  * 信號周期=(TIMx_ARR +1 ) * 時(shí)鐘周期
  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;  //當(dāng)定時(shí)器計(jì)數(shù)1000次,為一個(gè)周期
  46.         TIM_TimeBaseStructure.TIM_Prescaler = 5; //設(shè)置預(yù)分頻,預(yù)分頻為5,pwm頻率為12KHZ
  47.         /* 設(shè)置時(shí)鐘分頻系數(shù) */
  48.         TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;       
  49.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計(jì)數(shù)模式
  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);                   //使能定時(shí)器2       
  89.         TIM_Cmd(TIM3, ENABLE);                   //使能定時(shí)器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黑下載附件…………
復(fù)制代碼

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

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 拍真实国产伦偷精品 | 国产日韩欧美 | 成人精品毛片 | 国产清纯白嫩初高生视频在线观看 | 亚洲视频不卡 | 欧美高清一区 | 夜夜精品浪潮av一区二区三区 | 亚洲一区二区在线播放 | 在线免费看黄 | 久久久久国产精品一区二区 | 精品一区二区在线观看 | 欧洲一区二区三区 | 在线观看成人免费视频 | 国产精品久久久久一区二区三区 | 久久国产电影 | 亚洲在线 | 亚洲精品一区二区三区蜜桃久 | 日韩精品视频中文字幕 | 色橹橹欧美在线观看视频高清 | 国产精品国产三级国产aⅴ中文 | 久久r免费视频 | 一片毛片 | 给我免费的视频在线观看 | 天天干天天玩天天操 | 超碰成人av | 特级黄一级播放 | 成人免费视频网站在线看 | 密室大逃脱第六季大神版在线观看 | 欧美xxxⅹ性欧美大片 | 96av麻豆蜜桃一区二区 | a在线视频 | 欧美日韩国产综合在线 | 99久久久无码国产精品 | 亚洲香蕉 | 欧美精品一区二区三区在线播放 | 日韩精品一区二区三区免费观看 | 91av在线电影| 日本不卡一区二区三区在线观看 | 天堂色 | 超碰天天 | 国偷自产av一区二区三区 |