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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32單片機PWM輸出一直是高電平,怎么解決?

[復制鏈接]
跳轉到指定樓層
樓主
ID:42292 發表于 2023-9-2 15:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
100黑幣
1、單片機:STM32L031G6U6
2、使用IO:PA6 TIM22 CH1   PA7 TIM22 CH2
3、時鐘配置:1.048M
TIM22配置頻率:晶振頻率1.048Mhz  預分頻系數為 0,自動重裝載值為 99,定時器溢出頻率,即PWM的周期,就是 1.048MHz/(0+1)/(99+1) = 10.048kHz
4、問題:不能輸出PWM波形,示波器測試的

使能時輸出高電平,不使能時輸出低電平
HAL_TIM_PWM_Start(&htim22,TIM_CHANNEL_1);  //開啟PWM輸出
HAL_TIM_PWM_Start(&htim22,TIM_CHANNEL_2);  //開啟PWM輸出


TIM22初始化的代碼

  1. static void MX_TIM22_Init(void)
  2. {

  3.   /* USER CODE BEGIN TIM22_Init 0 */
  4. __HAL_RCC_TIM22_CLK_ENABLE();
  5.   /* USER CODE END TIM22_Init 0 */
  6. __HAL_RCC_TIM22_CLK_ENABLE();
  7.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  8.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  9.   TIM_OC_InitTypeDef sConfigOC = {0};

  10.   /* USER CODE BEGIN TIM22_Init 1 */

  11.   /* USER CODE END TIM22_Init 1 */
  12.   htim22.Instance = TIM22;
  13.   htim22.Init.Prescaler = 0;//晶振頻率1.048Mhz  預分頻系數為 0,自動重裝載值為 99,定時器溢出頻率,即PWM的周期,就是 1.048MHz/(0+1)/(99+1) = 10.048kHz
  14.   htim22.Init.CounterMode = TIM_COUNTERMODE_UP;
  15.   htim22.Init.Period = 99;
  16.   htim22.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  17.   htim22.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;//自動重裝載
  18.   if (HAL_TIM_Base_Init(&htim22) != HAL_OK)
  19.   {
  20.     Error_Handler();
  21.   }
  22.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
  23.   if (HAL_TIM_ConfigClockSource(&htim22, &sClockSourceConfig) != HAL_OK)
  24.   {
  25.     Error_Handler();
  26.   }
  27.   if (HAL_TIM_PWM_Init(&htim22) != HAL_OK)
  28.   {
  29.     Error_Handler();
  30.   }
  31.   if (HAL_TIM_OnePulse_Init(&htim22, TIM_OPMODE_SINGLE) != HAL_OK)
  32.   {
  33.     Error_Handler();
  34.   }
  35.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  36.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  37.   if (HAL_TIMEx_MasterConfigSynchronization(&htim22, &sMasterConfig) != HAL_OK)
  38.   {
  39.     Error_Handler();
  40.   }
  41.   sConfigOC.OCMode = TIM_OCMODE_PWM1;// PWM模式1
  42.   sConfigOC.Pulse = 60;//初始化占空比
  43.   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;//當定時器計數值小于CCR1_Val時為高電平*/
  44.   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  45.   if (HAL_TIM_PWM_ConfigChannel(&htim22, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  46.   {
  47.     Error_Handler();
  48.   }
  49.   if (HAL_TIM_PWM_ConfigChannel(&htim22, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
  50.   {
  51.     Error_Handler();
  52.   }
  53.   /* USER CODE BEGIN TIM22_Init 2 */

  54.   /* USER CODE END TIM22_Init 2 */
  55.     __HAL_RCC_GPIOA_CLK_ENABLE();
  56.     /**TIM22 GPIO Configuration
  57.     PA6     ------> TIM22_CH1
  58.     PA7     ------> TIM22_CH2
  59.     */
  60.           GPIO_InitTypeDef GPIO_InitStruct = {0};
  61.     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
  62.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  63.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  64.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  65.     GPIO_InitStruct.Alternate = GPIO_AF5_TIM22;
  66.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  67.                
  68.         
  69.   HAL_TIM_PWM_Start(&htim22,TIM_CHANNEL_1);  //開啟PWM輸出
  70.   //HAL_TIM_PWM_Start(&htim22,TIM_CHANNEL_2);  //開啟PWM輸出
  71.   __HAL_TIM_SET_COMPARE(&htim22,TIM_CHANNEL_1,50);  //設置默認的占空比值
  72.   //__HAL_TIM_SET_COMPARE(&htim22,TIM_CHANNEL_2,50);  //設置默認的占空比值
  73. }

復制代碼
主函數調用初始化


  1. int main(void)
  2. {
  3.                 static U8 LedTimer;
  4.                 U8 temp;
  5.                 HAL_Init();

  6.                 SystemClock_Config();
  7.                 MX_ADC_Init();
  8.                 MX_GPIO_Init();

  9.                 MX_TIM2_Init();   
  10.                 MX_TIM21_Init();
  11.           MX_TIM22_Init();  
復制代碼
主循環中持續輸出:

  1.   while (1)
  2.                 {
  3.                           __HAL_TIM_SET_COMPARE(&htim22,TIM_CHANNEL_1,50);  //設置默認的占空比值
  4.                         led_blink();
復制代碼



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区中文在线 | www.亚洲一区| 亚洲免费视频一区 | av中文字幕在线观看 | 精品亚洲视频在线 | 国产精品久久久久久吹潮 | 欧美片网站免费 | 99精品欧美一区二区三区综合在线 | 影视先锋av资源噜噜 | 国产精品1区2区3区 欧美 中文字幕 | 久久午夜国产精品www忘忧草 | 黄色毛片一级 | 日本免费在线观看视频 | 国产美女久久 | 日韩在线视频一区二区三区 | 国产精品精品视频一区二区三区 | 欧美日韩大片 | 精品亚洲二区 | www.五月天婷婷 | 欧美精品在线一区二区三区 | 日本三级精品 | 第一区在线观看免费国语入口 | 91精品国产乱码久久久久久久 | 日韩视频1| 亚洲精品视频网站在线观看 | 99久久亚洲 | 久久久久久久av麻豆果冻 | 一区视频| 日本一区二区高清视频 | 91精品国产91久久久久久吃药 | 日韩超碰 | 欧美精品欧美精品系列 | 成人一区二区在线 | 亚洲欧美一区二区三区在线 | 亚洲欧美综合 | 欧美精品一区二区三区四区五区 | 日日操夜夜操天天操 | 成人超碰在线 | 精品网站999www| 色眯眯视频在线观看 | 看av电影|