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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3081|回復: 3
收起左側

STM32 TIM3的全映射的通道三pwm波形輸出不對

[復制鏈接]
ID:483399 發表于 2019-7-29 22:55 | 顯示全部樓層 |閱讀模式
用32單片機的TIM3的全映射的通道三(PC8)和通道四(PC9)輸出兩路PWM波,程序如下,為什么用keil中的模擬只有PC8有PWM波形,PC9無呢,這是為什么?time.C
  1. void TIM3_CH3_PWM_Init(u16 arr,u16 psc)     //通道3的初始化
  2. {  
  3.         GPIO_InitTypeDef GPIO_InitStructure;
  4.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  5.         TIM_OCInitTypeDef  TIM_OCInitStructure;
  6.         

  7.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);        //使能定時器3時鐘
  8.          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);  //使能GPIO外設和AFIO復用功能模塊時鐘
  9.         
  10.         GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); //Timer3部分重映射  TIM3_CH2->PB5   

  11.    //設置該引腳為復用輸出功能,輸出TIM3 CH2的PWM脈沖波形        GPIOC.8
  12.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //TIM_CH3
  13.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //復用推挽輸出
  14.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  15.         GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIO
  16.         

  17.    //初始化TIM3
  18.         TIM_TimeBaseStructure.TIM_Period = arr; //設置在下一個更新事件裝入活動的自動重裝載寄存器周期的值
  19.         TIM_TimeBaseStructure.TIM_Prescaler =psc; //設置用來作為TIMx時鐘頻率除數的預分頻值
  20.         TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設置時鐘分割:TDTS = Tck_tim
  21.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上計數模式
  22.         TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根據TIM_TimeBaseInitStruct中指定的參數初始化TIMx的時間基數單位
  23.         
  24.         //初始化TIM3 Channel2 PWM模式         
  25.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調制模式2
  26.          TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  27.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
  28.         TIM_OC3Init(TIM3, &TIM_OCInitStructure);  //根據T指定的參數初始化外設TIM3 OC3
  29.         TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能TIM3在CCR2上的預裝載寄存器
  30.         
  31.   TIM_CtrlPWMOutputs(TIM3,ENABLE);
  32.   TIM_ARRPreloadConfig(TIM3, ENABLE);        
  33.         TIM_Cmd(TIM3, ENABLE);  //使能TIM3
  34.         

  35. }


  36. void TIM3_CH4_PWM_Init(u16 arr,u16 psc)    //通道4的初始化
  37. {  
  38.         GPIO_InitTypeDef GPIO_InitStructure;
  39.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  40.         TIM_OCInitTypeDef  TIM_OCInitStructure;
  41.         

  42.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);        //使能定時器3時鐘
  43.          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);  //使能GPIO外設和AFIO復用功能模塊時鐘
  44.         
  45.         GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); //Timer3部分重映射  TIM3_CH2->PB5   

  46.         
  47. //        GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
  48.          //設置該引腳為復用輸出功能,輸出TIM3 CH3的PWM脈沖波形        GPIOC.9
  49.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //TIM_CH4
  50.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //復用推挽輸出
  51.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  52.         GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIO

  53.    //初始化TIM3
  54.         TIM_TimeBaseStructure.TIM_Period = arr; //設置在下一個更新事件裝入活動的自動重裝載寄存器周期的值
  55.         TIM_TimeBaseStructure.TIM_Prescaler =psc; //設置用來作為TIMx時鐘頻率除數的預分頻值
  56.         TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設置時鐘分割:TDTS = Tck_tim
  57.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上計數模式
  58.         TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根據TIM_TimeBaseInitStruct中指定的參數初始化TIMx的時間基數單位
  59.         
  60.         
  61.         //初始化TIM3 Channel2 PWM模式         
  62.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調制模式2
  63.          TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  64.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
  65.         TIM_OC4Init(TIM3, &TIM_OCInitStructure);  //根據T指定的參數初始化外設TIM3 OC4
  66.         TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);


  67.   TIM_CtrlPWMOutputs(TIM3,ENABLE);
  68.   TIM_ARRPreloadConfig(TIM3, ENABLE);
  69.         TIM_Cmd(TIM3, ENABLE);  //使能TIM3

  70. }
復制代碼
部分主函數

  1. int main(void)
  2. {        
  3. u8 m1,m2;
  4. u8 sumHD;        
  5. delay_init();        //延時函數初始化        
  6. LED_Init();        //初始化與LED連接的硬件接口
  7. H_D_Init();
  8. TIM3_CH3_PWM_Init(899,71);
  9. TIM3_CH4_PWM_Init(899,71);
  10. while(1)
  11. {
  12. }
復制代碼

11.png

回復

使用道具 舉報

ID:123289 發表于 2019-7-30 08:02 | 顯示全部樓層
查一下手冊,看看PWM允許從哪些端口輸出。
回復

使用道具 舉報

ID:511461 發表于 2019-7-30 09:14 | 顯示全部樓層
復用并不是外設引腳隨便配置,而指的是一個引腳有多個外設公用,但是任何一個時刻只能有一個外設使用它。你是不是還有別的地方用到了
回復

使用道具 舉報

ID:511461 發表于 2019-7-30 09:36 | 顯示全部樓層
樓主,你的波怎么出來的,你沒有設置這兩路的占空比吧
我用了你的代碼,并在while中加了兩句       
TIM_SetCompare3(TIM3,270);
TIM_SetCompare4(TIM3,270);
用示波器看過了兩路都有波。
要不你再while中也加上這兩句,如果PC9還沒波,而且你還沒有在別的地方用過這個引腳,那就是你的這個引腳壞了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人深夜福利在线观看 | 亚洲91视频 | 精品欧美一区二区在线观看欧美熟 | 麻豆国产精品777777在线 | 亚洲精品久久久一区二区三区 | 国产国产精品久久久久 | 久久国产一区二区三区 | 中文日韩在线视频 | 在线视频国产一区 | 中文字幕中文字幕 | 成人性生交大片免费看r链接 | 日韩中文字幕一区 | 久久久国产亚洲精品 | 欧美一级视频免费看 | 粉嫩一区二区三区性色av | 亚洲欧美日韩在线一区二区 | 奇米四色影视 | 一级日批片 | 午夜影院在线观看免费 | 久久一级| 亚洲一区综合 | 国产夜恋视频在线观看 | 久久精品亚洲国产奇米99 | 91麻豆精品一区二区三区 | 国产精品久久国产精品久久 | 成人午夜网站 | 国产精品国产成人国产三级 | 久久久久久久久久久久久久av | 成人欧美一区二区三区在线播放 | 欧美在线观看一区 | 国产精品久久久久久妇女6080 | 91精品国产色综合久久 | 一级毛片免费看 | 日韩一区在线视频 | 91超碰caoporn97人人 | 日韩精品网站 | 精品熟人一区二区三区四区 | 欧美色综合一区二区三区 | 91视频在线看| 三级国产三级在线 | 国产福利二区 |