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

標題: stm32通過TMI2和tim3產生6路pwm波的源碼 [打印本頁]

作者: zcz9748    時間: 2017-12-26 18:06
標題: stm32通過TMI2和tim3產生6路pwm波的源碼
單片機源程序如下:
  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)







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 中文字幕一区二区三区四区视频 | 久久免费观看视频 | 国产福利在线 | 91久久精品日日躁夜夜躁欧美 | 日韩毛片免费 | 亚洲精品社区 | 中文字幕高清 | 欧美成人a | 在线观看a视频 | 欧美色综合网 | 国产视频福利 | 亚洲精品在线视频观看 | 欧美理论片在线观看 | 黄色国产网站 | 免费网站观看www在线观 | 欧美日韩亚洲一区二区三区 | 色婷av | 国产精品久久久久久99 | 亚洲va视频 | 国产三级一区 | 国产三级做爰高清在线 | 国产午夜一区二区三区 | 欧美一区二区三区在线视频 | 黄色在线观看网址 | 亚洲欧美网站 | www.欧美精品 | 97精品国产露脸对白 | 亚洲爽妇网 | 午夜精品久久久久久久久久久久 | 亚洲手机在线 | 波多野结衣视频一区 | 97免费在线视频 | 女同一区二区三区 | 日日干日日射 | 在线免费看a | 黄色一级视频网站 | 欧美黄色片视频 | 欧美在线视频播放 | 日本欧美久久久久免费播放网 | 刘玥大战28公分黑人 | 国产成人精品一区二区三区在线 |