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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3256|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区在线免费 | 喷潮网站 | 国产九九九九 | 亚洲国产成人精品女人久久久 | 伊人在线| 中日av| 在线观看成年视频 | 日韩在线中文 | 久久精品久久久 | 羞羞的视频免费在线观看 | 日韩午夜| 国产精品毛片 | 中文在线а√在线8 | 欧美日韩亚洲视频 | 日韩一区二区三区精品 | 精品91久久久 | 精品人伦一区二区三区蜜桃网站 | 中文天堂在线观看 | 欧美另类视频 | 成人精品国产 | 精品日韩一区二区三区 | 日韩一区二区三区视频在线播放 | 成人在线视频一区二区三区 | 欧美午夜精品理论片a级按摩 | 99精品免费视频 | 久久宗合色 | 波多野结衣精品在线 | 日本特黄a级高清免费大片 特黄色一级毛片 | 午夜影院 | 天天操夜夜看 | 天天操网 | 欧美午夜精品 | 国产精品成人国产乱一区 | 亚洲狠狠 | 国产精品久久久久久久久免费樱桃 | 亚洲国产精品久久久 | 亚洲精品一区在线观看 | 国产视频久 | 婷婷免费视频 | 91精品中文字幕一区二区三区 | 在线播放一区 |