亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6770|回復: 1
打印 上一主題 下一主題
收起左側

STM32學習(設置TIM4輸出4路 pwm J-LINK仿真驗證)源碼與教程

[復制鏈接]
跳轉到指定樓層
樓主
STM32F103C8T6:
stm32的pwm輸出只要設置好在主循環前調用一次即可, 對用的IO就可以持續的輸出PWM
TIM4配置PWM過程程序:



J-LINK仿真配置

1. 選擇“ Options for Target” 選項


2. 在“ Debug” 中選擇“Use Simulator" 注意下面的配置


3. 配置好編譯下




4.  選擇Debug模式調試


5. 進入Debug模式后選擇

6. 配置pwm輸出引腳








配置好輸出引腳直接”close“掉

7. 開始仿真運行







貼一下程序記錄下:
  1. /*
  2. //TIM4 CH1 PWM 輸出設置
  3. //PWM 輸出初始化
  4. //arr:自動重裝值
  5. //psc:時鐘預分頻數
  6. STM32F103C8T6
  7. PB6 - TIM4_CH1
  8. PB7 - TIM4_CH2
  9. PB8 - TIM4_CH3
  10. PB9 - TIM4_CH4
  11. */
  12. void Tim4_PWM_Init(u16 arr,u16 psc)
  13. {
  14.         GPIO_InitTypeDef GPIO_InitStructure;
  15.     TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  16.     TIM_OCInitTypeDef TIM_OCInitStructure;

  17.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //使能 TIMx 外設
  18.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能 PB 時鐘
  19.         TIM_DeInit(TIM4);

  20.   //設置該引腳為復用輸出功能,輸出 TIM4 CH1 的 PWM 脈沖波形
  21.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; //TIM4_CH1
  22.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用功能輸出
  23.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  24.         GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化 GPIO

  25.         TIM_TimeBaseStructure.TIM_Period = arr; //設置自動重裝載周期值
  26.         TIM_TimeBaseStructure.TIM_Prescaler =psc; //設置預分頻值 不分頻
  27.         TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設置時鐘分割:TDTS = Tck_tim
  28.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上計數
  29.         TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); //初始化 TIMx
  30.         
  31.         
  32.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //CH1 PWM2 模式
  33.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  34.         TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;
  35.         
  36.         
  37.         TIM_OCInitStructure.TIM_Pulse = 200; //設置待裝入捕獲比較寄存器的脈沖值
  38.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //OC1 高電平有效
  39.         TIM_OC1Init(TIM4, &TIM_OCInitStructure); //根據指定的參數初始化外設 TIMx
  40.         TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable); //CH1 預裝載使能
  41.         
  42.         
  43.         TIM_OCInitStructure.TIM_Pulse = 400; //設置待裝入捕獲比較寄存器的脈沖值
  44.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //OC2 高電平有效
  45.         TIM_OC2Init(TIM4, &TIM_OCInitStructure); //根據指定的參數初始化外設 TIMx
  46.         TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable); //CH2 預裝載使能
  47.         
  48.         
  49.         TIM_OCInitStructure.TIM_Pulse = 600; //設置待裝入捕獲比較寄存器的脈沖值
  50.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //OC1 高電平有效
  51.         TIM_OC3Init(TIM4, &TIM_OCInitStructure); //根據指定的參數初始化外設 TIMx
  52.         TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable); //CH3 預裝載使能
  53.         
  54.         
  55.         TIM_OCInitStructure.TIM_Pulse = 800; //設置待裝入捕獲比較寄存器的脈沖值
  56.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //OC1 高電平有效
  57.         TIM_OC4Init(TIM4, &TIM_OCInitStructure); //根據指定的參數初始化外設 TIMx
  58.         TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable); //CH4 預裝載使能
  59.         
  60.         
  61.         TIM_ARRPreloadConfig(TIM4, ENABLE); //使能 TIMx 在 ARR 上的預裝載寄存器
  62. //        TIM_CtrlPWMOutputs(TIM4,ENABLE);  //MOE 主輸出使能,高級定時器必須開啟
  63.         TIM_Cmd(TIM4, ENABLE); //使能 TIMx
  64. }
復制代碼

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:406128 發表于 2018-11-27 10:07 | 只看該作者
多謝大佬的教程,很多時候我也想發些什么,但是技術達不到,怕誤人
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表