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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3131|回復(fù): 3
收起左側(cè)

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

[復(fù)制鏈接]
ID:483399 發(fā)表于 2019-7-29 22:55 | 顯示全部樓層 |閱讀模式
用32單片機(jī)的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外設(shè)和AFIO復(fù)用功能模塊時鐘
  9.         
  10.         GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); //Timer3部分重映射  TIM3_CH2->PB5   

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

  17.    //初始化TIM3
  18.         TIM_TimeBaseStructure.TIM_Period = arr; //設(shè)置在下一個更新事件裝入活動的自動重裝載寄存器周期的值
  19.         TIM_TimeBaseStructure.TIM_Prescaler =psc; //設(shè)置用來作為TIMx時鐘頻率除數(shù)的預(yù)分頻值
  20.         TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設(shè)置時鐘分割:TDTS = Tck_tim
  21.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上計數(shù)模式
  22.         TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時間基數(shù)單位
  23.         
  24.         //初始化TIM3 Channel2 PWM模式         
  25.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調(diào)制模式2
  26.          TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  27.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
  28.         TIM_OC3Init(TIM3, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM3 OC3
  29.         TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能TIM3在CCR2上的預(yù)裝載寄存器
  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外設(shè)和AFIO復(fù)用功能模塊時鐘
  44.         
  45.         GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); //Timer3部分重映射  TIM3_CH2->PB5   

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

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

  1. int main(void)
  2. {        
  3. u8 m1,m2;
  4. u8 sumHD;        
  5. delay_init();        //延時函數(shù)初始化        
  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. }
復(fù)制代碼

11.png

回復(fù)

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久欧美精品 | 日本久久一区二区三区 | 午夜精品一区二区三区在线视频 | 久久精品国产一区 | 欧美在线a | 色综合天天天天做夜夜夜夜做 | 日韩波多野结衣 | 狠狠干天天干 | 999国产精品视频免费 | 国产在线精品一区 | 日韩久久综合 | 国产精品久久久99 | 中文字幕国 | 人操人免费视频 | 亚洲网站在线观看 | 精品久久精品 | 99re视频在线| 狠狠躁天天躁夜夜躁婷婷老牛影视 | 精品一区二区不卡 | 日韩激情一区 | 91高清在线 | 久久久久久久久精 | 日韩免费一二三区 | 99在线国产| 91精品国产综合久久精品 | 激情五月综合 | 免费在线观看毛片 | 日韩在线免费看 | 欧美日韩国产精品一区 | 久久在线看 | 国产精品成人在线 | 毛片视频观看 | 国产清纯白嫩初高生视频在线观看 | 国产高清视频一区二区 | 中午字幕在线观看 | 欧美国产精品一区二区三区 | 欧美精品成人一区二区三区四区 | 日本精品视频在线 | 97精品超碰一区二区三区 | 91视频在线看 | 午夜婷婷激情 |