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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1314|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

bsp_pwm_output

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:583158 發(fā)表于 2019-7-19 14:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include "bsp_pwm_output.h"

  2. /**
  3.   * @brief  配置TIM3復(fù)用輸出PWM時(shí)用到的I/O
  4.   * @param  無(wú)
  5.   * @retval 無(wú)
  6.   */
  7. static void TIMx_GPIO_Config(void)
  8. {
  9.   GPIO_InitTypeDef GPIO_InitStructure;
  10.    
  11.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO,ENABLE);
  12.     GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);  //PB4
  13.     GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
  14.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  15.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  16.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  17.     GPIO_Init(GPIOB, &GPIO_InitStructure);

  18. //  /*GPIOB Configuration: TIM3 channel 2 as alternate function push-pull */
  19. //  GPIO_InitStructure.GPIO_Pin =  macTIM_CH2_PIN;
  20. //  GPIO_Init(macTIM_CH2_PORT, &GPIO_InitStructure);


  21. }

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

  37.         /* PWM信號(hào)電平跳變值 */
  38.         u16 CCR1_Val = 500;        
  39.         u16 CCR2_Val = 0;
  40. //         u16 CCR3_Val = 250;
  41. //         u16 CCR4_Val = 125;

  42. /* -----------------------------------------------------------------------
  43.     macTIMx Channel1 duty cycle = (macTIMx_CCR1/ macTIMx_ARR+1)* 100% = 50%
  44.     macTIMx Channel2 duty cycle = (macTIMx_CCR2/ macTIMx_ARR+1)* 100% = 37.5%
  45.     macTIMx Channel3 duty cycle = (macTIMx_CCR3/ macTIMx_ARR+1)* 100% = 25%
  46.     macTIMx Channel4 duty cycle = (macTIMx_CCR4/ macTIMx_ARR+1)* 100% = 12.5%
  47.   ----------------------------------------------------------------------- */

  48.   /* Time base configuration */                 
  49.   TIM_TimeBaseStructure.TIM_Period = 999;       //當(dāng)定時(shí)器從0計(jì)數(shù)到999,即為1000次,為一個(gè)定時(shí)周期
  50.   TIM_TimeBaseStructure.TIM_Prescaler = 0;            //設(shè)置預(yù)分頻:不預(yù)分頻,即為72MHz
  51.   TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;        //設(shè)置時(shí)鐘分頻系數(shù):不分頻(這里用不到)
  52.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計(jì)數(shù)模式
  53.   TIM_TimeBaseInit(macTIMx, &TIM_TimeBaseStructure);

  54.   /* PWM1 Mode configuration: Channel1 */
  55.   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;            //配置為PWM模式1
  56.   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;       
  57.   TIM_OCInitStructure.TIM_Pulse = CCR1_Val;           //設(shè)置跳變值,當(dāng)計(jì)數(shù)器計(jì)數(shù)到這個(gè)值時(shí),電平發(fā)生跳變
  58.   TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  //當(dāng)定時(shí)器計(jì)數(shù)值小于CCR1_Val時(shí)為高電平
  59.   TIM_OC1Init(macTIMx, &TIM_OCInitStructure);         //使能通道1
  60.   TIM_OC1PreloadConfig(macTIMx, TIM_OCPreload_Enable);

  61. //  /* PWM1 Mode configuration: Channel2 */
  62.   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  63.   TIM_OCInitStructure.TIM_Pulse = CCR2_Val;          //設(shè)置通道2的電平跳變值,輸出另外一個(gè)占空比的PWM
  64.   TIM_OC2Init(macTIMx, &TIM_OCInitStructure);          //使能通道2
  65.   TIM_OC2PreloadConfig(macTIMx, TIM_OCPreload_Enable);


  66.   TIM_ARRPreloadConfig(macTIMx, ENABLE);                         // 使能TIM3重載寄存器ARR

  67.   /* TIM3 enable counter */
  68.   TIM_Cmd(macTIMx, ENABLE);                   //使能定時(shí)器3
  69. }

  70. /**
  71.   * @brief  TIM3 輸出PWM信號(hào)初始化,只要調(diào)用這個(gè)函數(shù)
  72.   *         TIM3的四個(gè)通道就會(huì)有PWM信號(hào)輸出
  73.   * @param  無(wú)
  74.   * @retval 無(wú)
  75.   */
  76. void TIMx_PWM_Init(void)
  77. {
  78.         TIMx_GPIO_Config();
  79.         TIMx_Mode_Config();       
  80. }

  81. /*********************************************END OF FILE**********************/
復(fù)制代碼

PwmOutput.zip

2.27 KB, 下載次數(shù): 3, 下載積分: 黑幣 -5

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2019-7-20 03:14 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情一区二区三区 | 男女下面一进一出网站 | 91免费在线视频 | 久久在线看 | 亚洲一区视频在线 | 三级在线视频 | 国产一区二区观看 | 91精品国产乱码久久久久久久 | 69av片| 在线看无码的免费网站 | 成人美女免费网站视频 | 精品一区二区三区在线观看国产 | 免费看爱爱视频 | 久久草视频| av手机免费在线观看 | 精品国产一区二区在线 | 久久精彩视频 | 欧美国产中文 | 搞av.com| 一区二区三区中文字幕 | 亚洲国产成人av好男人在线观看 | 97碰碰碰 | 中文字幕亚洲专区 | 欧美视频第二页 | 亚洲国产日韩一区 | 国产91久久精品一区二区 | 日韩欧美精品一区 | 欧美激情五月 | 天天操天天干天天爽 | 欧美精品一区二区三区在线播放 | 国产午夜精品一区二区三区嫩草 | 欧美片网站免费 | 在线观看黄色 | 在线视频一区二区 | 亚洲成人一级片 | 综合五月婷 | 亚洲精品一区二区三区中文字幕 | 成人精品网 | 97人人爱| 久久中文字幕av | 中文成人无字幕乱码精品 |