野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9033|回复: 6

谁有TIM1\TIM8输出PWM波程序啊!!!!!

[复制链接]
发表于 2016-3-11 09:36:20 | 显示全部楼层 |阅读模式
哪位大神要是有TIM1\TIM8输出PWM波程序能不能上传给我一份啊???????
回复

使用道具 举报

发表于 2016-3-11 09:42:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2016-4-28 11:01:37 | 显示全部楼层
朋友,配置好了吗?TIM8输出PWM?同求呀,我按照火哥例程的没输出波。
回复 支持 反对

使用道具 举报

发表于 2016-7-21 19:42:24 | 显示全部楼层
flyleaf 发表于 2016-3-11 09:42
http://www.firebbs.cn/thread-9852-1-1.html

哪是TIM1和TIM8发波的 ,瞎发什么啊
回复 支持 反对

使用道具 举报

发表于 2016-8-1 09:13:35 | 显示全部楼层
  1. #include "TIM1_pwm_output.h"

  2. void TIM1_GPIO_Config(void)                 //Advanced TIM
  3. {  
  4.         GPIO_InitTypeDef GPIO_InitStructure;
  5.        

  6. //        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
  7.         RCC_APB2PeriphClockCmd( RCC_APB2Periph_TIM1, ENABLE);    //ê1Äü¶¨ê±Æ÷1μÄê±Öó
  8.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO |RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB , ENABLE);   //ê1Äü¶¨ê±Æ÷
  9. //         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);         //ê1ÄüPA¶Ë¿úê±Öó
  10.                                                                                                                                                                
  11. //        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //TIM_CH1      //óë·äÃùÆ÷PA812óÃ,ÔYê±Æá±Î
  12. //        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //¸′óÃíÆíìêä3ö
  13. //        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  14. //        GPIO_Init(GPIOA, &GPIO_InitStructure);

  15.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //TIM_CH2
  16.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //¸′óÃíÆíìêä3ö
  17.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  18.         GPIO_Init(GPIOA, &GPIO_InitStructure);

  19.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //TIM_CH3
  20.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //¸′óÃíÆíìêä3ö
  21.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  22.         GPIO_Init(GPIOA, &GPIO_InitStructure);

  23.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //TIM_CH4
  24.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //¸′óÃíÆíìêä3ö
  25.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  26.         GPIO_Init(GPIOA, &GPIO_InitStructure);

  27.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //TIM_CH1N
  28.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //¸′óÃíÆíìêä3ö
  29.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  30.         GPIO_Init(GPIOB, &GPIO_InitStructure);

  31.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; //TIM_CH2N
  32.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //¸′óÃíÆíìêä3ö
  33.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  34.         GPIO_Init(GPIOB, &GPIO_InitStructure);

  35.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; //TIM_CH3N
  36.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //¸′óÃíÆíìêä3ö
  37.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  38.         GPIO_Init(GPIOB, &GPIO_InitStructure);

  39.        
  40. }

  41. static void TIM1_Mode_Config(void)
  42. {
  43.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  44.         TIM_OCInitTypeDef  TIM_OCInitStructure;
  45.         TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
  46.        
  47.         u16 CCR1_Val1 = 500;        
  48.         u16 CCR2_Val1 = 375;
  49.         u16 CCR3_Val1 = 250;
  50.         u16 CCR4_Val1 = 125;
  51.        
  52.         TIM_TimeBaseStructure.TIM_Period = 999; //éèÖÃÔúÏÂò»¸ö¸üDÂê¼t×°èë»î¶ˉμÄ×Ô¶ˉÖØ×°ÔؼÄ′æÆ÷ÖüÆúμÄÖμ         80K
  53.         TIM_TimeBaseStructure.TIM_Prescaler =0; //éèÖÃóÃà′×÷ÎaTIMxê±ÖóÆμÂê3yêyμÄÔ¤·ÖÆμÖμ  2»·ÖÆμ
  54.         TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1; //éèÖÃê±Öó·Ö¸î:TDTS = Tck_tim
  55.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIMÏòéϼÆêyÄ£ê½
  56.         TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //¸ù¾YTIM_TimeBaseInitStructÖDÖ¸¶¨μÄ2Îêy3õê¼»ˉTIMxμÄê±¼ä»ùêyμ¥λ
  57.        
  58.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;                         //        Ñ¡Ôñ¶¨ê±Æ÷Ä£ê½:TIMÂö3å¿í¶èμ÷ÖÆÄ£ê½2
  59.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±è½Ïêä3öê1Äü
  60.         TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; //±è½Ïêä3öê1Äü
  61.         TIM_OCInitStructure.TIM_Pulse = CCR1_Val1;                                                         //éèÖÃ′y×°èë2¶»ñ±è½Ï¼Ä′æÆ÷μÄÂö3åÖμ
  62.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;         //êä3ö¼«DÔ:TIMêä3ö±è½Ï¼«DÔ¸ß
  63.         TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;         //êä3ö¼«DÔ:TIMêä3ö±è½Ï¼«DÔ¸ß
  64.         TIM_OCInitStructure.TIM_OCIdleState        = TIM_OCIdleState_Set;
  65.         TIM_OCInitStructure.TIM_OCNIdleState        = TIM_OCIdleState_Reset;
  66.         TIM_OC1Init(TIM1, &TIM_OCInitStructure);                                 
  67.         TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);                          //ê1ÄüTIMxÔúCCR1éÏμÄԤװÔؼÄ′æÆ÷

  68.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;                           //Ñ¡Ôñ¶¨ê±Æ÷Ä£ê½:TIMÂö3å¿í¶èμ÷ÖÆÄ£ê½2
  69.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±è½Ïêä3öê1Äü
  70.         TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; //±è½Ïêä3öê1Äü
  71.         TIM_OCInitStructure.TIM_Pulse = CCR2_Val1;                                                           //éèÖÃ′y×°èë2¶»ñ±è½Ï¼Ä′æÆ÷μÄÂö3åÖμ
  72.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;           //êä3ö¼«DÔ:TIMêä3ö±è½Ï¼«DÔ¸ß
  73.         TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;         //êä3ö¼«DÔ:TIMêä3ö±è½Ï¼«DÔ¸ß
  74.         TIM_OCInitStructure.TIM_OCIdleState        = TIM_OCIdleState_Set;
  75.         TIM_OCInitStructure.TIM_OCNIdleState        = TIM_OCIdleState_Reset;
  76.         TIM_OC2Init(TIM1, &TIM_OCInitStructure);
  77.         TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);                            //ê1ÄüTIMxÔúCCR2éÏμÄԤװÔؼÄ′æÆ÷

  78.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;                         //Ñ¡Ôñ¶¨ê±Æ÷Ä£ê½:TIMÂö3å¿í¶èμ÷ÖÆÄ£ê½2
  79.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±è½Ïêä3öê1Äü
  80.         TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; //±è½Ïêä3öê1Äü
  81.         TIM_OCInitStructure.TIM_Pulse = CCR3_Val1;                                                         //éèÖÃ′y×°èë2¶»ñ±è½Ï¼Ä′æÆ÷μÄÂö3åÖμ
  82.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;         //êä3ö¼«DÔ:TIMêä3ö±è½Ï¼«DÔ¸ß
  83.         TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;         //êä3ö¼«DÔ:TIMêä3ö±è½Ï¼«DÔ¸ß
  84.         TIM_OCInitStructure.TIM_OCIdleState        = TIM_OCIdleState_Set;
  85.         TIM_OCInitStructure.TIM_OCNIdleState        = TIM_OCIdleState_Reset;
  86.         TIM_OC3Init(TIM1, &TIM_OCInitStructure);                                 
  87.         TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable);                          //ê1ÄüTIMxÔúCCR3éÏμÄԤװÔؼÄ′æÆ÷

  88.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;                           //Ñ¡Ôñ¶¨ê±Æ÷Ä£ê½:TIMÂö3å¿í¶èμ÷ÖÆÄ£ê½2
  89.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±è½Ïêä3öê1Äü
  90.         TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; //±è½Ïêä3öê1Äü
  91.         TIM_OCInitStructure.TIM_Pulse = CCR4_Val1;                                                           //éèÖÃ′y×°èë2¶»ñ±è½Ï¼Ä′æÆ÷μÄÂö3åÖμ
  92.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;           //êä3ö¼«DÔ:TIMêä3ö±è½Ï¼«DÔ¸ß
  93.         TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;         //êä3ö¼«DÔ:TIMêä3ö±è½Ï¼«DÔ¸ß
  94.         TIM_OCInitStructure.TIM_OCIdleState        = TIM_OCIdleState_Set;
  95.         TIM_OCInitStructure.TIM_OCNIdleState        = TIM_OCIdleState_Reset;
  96.         TIM_OC4Init(TIM1, &TIM_OCInitStructure);
  97.         TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable);                            //ê1ÄüTIM1ÔúCCR4éÏμÄԤװÔؼÄ′æÆ÷
  98.        
  99.         TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable;
  100.         TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable;
  101.         TIM_BDTRConfig(TIM1, &TIM_BDTRInitStructure);
  102. /*         assert_param(IS_TIM_OSSR_STATE(TIM_BDTRInitStruct->TIM_OSSRState));
  103.           assert_param(IS_TIM_OSSI_STATE(TIM_BDTRInitStruct->TIM_OSSIState));
  104.           assert_param(IS_TIM_LOCK_LEVEL(TIM_BDTRInitStruct->TIM_LOCKLevel));
  105.           assert_param(IS_TIM_BREAK_STATE(TIM_BDTRInitStruct->TIM_Break));
  106.         assert_param(IS_TIM_BREAK_POLARITY(TIM_BDTRInitStruct->TIM_BreakPolarity));
  107.         assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(TIM_BDTRInitStruct->TIM_AutomaticOutput));
  108.   */
  109.         TIM_ARRPreloadConfig(TIM1, ENABLE);                                                   //ê1ÄüTIMxÔúARRéÏμÄԤװÔؼÄ′æÆ÷
  110.         TIM_Cmd(TIM1, ENABLE);                                                                            //ê1ÄüTIMxíaéè
  111.         TIM_CtrlPWMOutputs(TIM1, ENABLE);                                                          //pwmêä3öê1Äü£¬ò»¶¨òa¼ÇμÃ′ò¿a
  112. }

  113. void TIM1_PWM_Init(void)
  114. {
  115. TIM1_GPIO_Config();
  116. TIM1_Mode_Config        ();
  117. }
复制代码


回复 支持 反对

使用道具 举报

发表于 2016-8-1 09:14:03 | 显示全部楼层
  1. #ifndef __TIM1_PWM_OUTPUT_H
  2. #define        __TIM1_PWM_OUTPUT_H


  3. #include "stm32f10x.h"


  4. /********************TIM2Îêy¶¨ò壬ֻÏTTIM2¡¢3¡¢4»ò5**************************/
  5. #define             macTIM1                                 TIM1
  6. #define             macTIM1_APBxClock_FUN                   RCC_APB2PeriphClockCmd
  7. #define             macTIM1_CLK                             RCC_APB2Periph_TIM1
  8. #define             macTIM1_GPIO_APBxClock_FUN              RCC_APB2PeriphClockCmd
  9. #define             macTIM1_GPIO_CLK                        RCC_APB2Periph_GPIOA  
  10. #define             macTIM1_CH1_PORT                        GPIOA
  11. #define             macTIM1_CH1_PIN                         GPIO_Pin_8
  12. #define             macTIM1_CH2_PORT                        GPIOA
  13. #define             macTIM1_CH2_PIN                         GPIO_Pin_9
  14. #define             macTIM1_CH3_PORT                        GPIOA
  15. #define             macTIM1_CH3_PIN                         GPIO_Pin_10
  16. #define             macTIM1_CH4_PORT                        GPIOA
  17. #define             macTIM1_CH4_PIN                         GPIO_Pin_11
  18. #define             macTIM1_CH1N_PORT                        GPIOB
  19. #define             macTIM1_CH1N_PIN                         GPIO_Pin_13
  20. #define             macTIM1_CH2N_PORT                        GPIOB
  21. #define             macTIM1_CH2N_PIN                         GPIO_Pin_14
  22. #define             macTIM1_CH3N_PORT                        GPIOB
  23. #define             macTIM1_CH3N_PIN                         GPIO_Pin_15



  24. /************************** TIM oˉêyéùÃ÷********************************/
  25. void               TIM1_PWM_Init(void);


  26. #endif /* __PWM_OUTPUT_H */

复制代码


回复 支持 反对

使用道具 举报

发表于 2016-8-1 09:14:53 | 显示全部楼层
TIM1可以发,我改成TIM8却发不了PWM,不知道为什么。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-27 07:56 , Processed in 0.031506 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表