• STM32 学习——2. PWM


    这个项目将会不断改变pwm占空比,使用proteus示波器进行观察。

    1. proteus8.15 原理图

    在这里插入图片描述

    2. cubemx

    在这里插入图片描述

    上图是配置外部晶振

    在这里插入图片描述

    上图配置在proteus中没啥作用,注意: 在实际开发板中,一定要配置它,不然下一次你写不进代码。

    在这里插入图片描述

    上图配置时钟源,圈出的红框位置直接输入72,然后回车即可。

    在这里插入图片描述

    上图配置pwm分频系数、计数器等值。
    这一部分我要说说自己的理解,可能是错的,不过无所谓啦
    兄弟们请看,本例中分频系数为71(72-1),72MHz(72000,000Hz)进行72分频后,时钟频率是1000,000Hz。1000,000Hz时,时钟周期是0.000001S,也就是说现在时钟周期是1微秒。
    兄弟们再看,计数器的值是1000,所以pwm会在1000次时钟周期循环一次,也就是说1毫秒循环一次。
    兄弟们再看,占空比设置时,如果设置为500,也就是500/100=50%,此时0.5毫秒的高电平,0.5毫秒的低电平。

    3. keil 源码

    int main(void)
    {
    
      /* USER CODE BEGIN 1 */
    
      /* USER CODE END 1 */
    
      /* MCU Configuration--------------------------------------------------------*/
    
      /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
      HAL_Init();
    
      /* USER CODE BEGIN Init */
    
      /* USER CODE END Init */
    
      /* Configure the system clock */
      SystemClock_Config();
    
      /* USER CODE BEGIN SysInit */
    	
      /* USER CODE END SysInit */
    
      /* Initialize all configured peripherals */
      MX_GPIO_Init();
      MX_TIM1_Init();
      /* USER CODE BEGIN 2 */
      HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
      __HAL_TIM_SetCompare(&htim1, TIM_CHANNEL_1, 500);
    	uint16_t pwm=0;
      /* USER CODE END 2 */
    
      /* Infinite loop */
      /* USER CODE BEGIN WHILE */
      while (1)
      {
    		while (pwm< 1000)
    	  {
    		  pwm++;
    		  __HAL_TIM_SetCompare(&htim1, TIM_CHANNEL_1, pwm);    
    	  }
    		pwm = 0;
    	  HAL_Delay(1);
        /* USER CODE END WHILE */
    
        /* USER CODE BEGIN 3 */
      }
      /* USER CODE END 3 */
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    4. 源码

    gitee

  • 相关阅读:
    WSUS 修补程序管理的替代方法
    从购买服务器到网站搭建成功保姆级教程~超详细
    Spring cloud Sentinel介绍和安装
    指针(四)- 函数指针和回调函数
    NFS高可用方案:NFS+keepalived+Sersync
    元素跟随鼠标移动
    黑盒测试的5种方法介绍
    双软企业需要什么条件
    jquery datatable+bootstrap popover在表格里弹出对话框时只在表格内部,而不是外部
    pip常用命令
  • 原文地址:https://blog.csdn.net/DreamPossible20/article/details/139201173