一、时钟配置

1、STM8S的4种时钟源可用做主时钟:
● 1-24MHz高速外部晶体振荡器(HSE)
● 最大24MHz高速外部时钟信号(HSE user-ext)
● 16MHz高速内部RC振荡器(HSI)
● 128KHz低速内部RC(LSI)

STM8默认时钟源为16MHz高速内部RC振荡器(HSI)

对 CLK_CKDIVR设置可以设置时钟为HSI的分频

如 CLK_CKDIVR|= (uint8_t)0x00;/*设置时钟为内部16M高速时钟*/

2分频为 CLK_CKDIVR=0x08;4分频为 CLK_CKDIVR=0x10;8分频为 CLK_CKDIVR=0x18;

二、定时器1设置

1、定时器1CH3输出PWM

代码如:

CLK_PCKENR1 |= 0x80;//开启定时器1外设时钟 
     TIM1_EGR = 0x01;   //重新初始化TIM1 
 
    TIM1_CR1 = 0x00;   //B7(0)可以直接写入 B65(00)边缘对齐模式B4(0)向上计数B3(0)计数器不停止发生更新事件
    TIM1_RCR = 0x00;  
    
      //设定预分频为,16分频 16M
    TIM1_PSCRH =0x00;  //PWM的时钟 影响周期
    TIM1_PSCRL =0x08;  //PWM的时钟 影响周期
    
    TIM1_ARRH = 0x01;     //设定重装载值
    TIM1_ARRL = 0x40;  //PWM的周期 
    
    TIM1_CCER2 = 0x03; //开启CH3,高电平有效   
    TIM1_CCMR3 = 0x68; //PWM模式1,CC1配置入输出
    TIM1_CCR3H = 0x00;
    TIM1_CCR3L = 0x40;  // 占空比值
   // TIM1_DTR = 0x50;        // Deadtime generator
    TIM1_BKR |= 0x80;       //刹车
    TIM1_CR1 |= 0x01; //使能TIM1计数器

2、定时器1CH1输出PWM

代码如:

TIM1_EGR = 0x01;   //重新初始化TIM1 
    //TIM1_CR1 = 0x00;   //B7(0)可以直接写入 B65(00)边缘对齐模式B4(0)向上计数B3(0)计数器不停止发生更新事件
   // TIM1_RCR = 0x00;  
      //设定预分频为,16分频 16M
    TIM1_PSCRH =0x00;  //PWM的时钟 影响周期
    TIM1_PSCRL =0x00;  //PWM的时钟 影响周期
    
    TIM1_ARRH = 0x00;     //设定重装载值
    TIM1_ARRL = 0x64;  //PWM的周期 100,f=20K,CLK=20*10=2M
 
    //CH1
    TIM1_CCER1 = 0x01; //CC2ER1开启CH1  
    TIM1_CCMR1 = 0x68; //PWM模式1,CC1配置入输出
    TIM1_CCR1H = 0x00;
    TIM1_CCR1L = 0x40;  // 占空比值
    
     TIM1_OISR &= ~0x03;
   // TIM1_DTR = 0x50;        // Deadtime generator
    TIM1_BKR |= 0x80;       //刹车
    TIM1_CR1 |= 0x01; //使能TIM1计数器

CH1要产生PWM,GPIO要配为推挽输出模式

PC_DDR|=0xff;//输出
    PC_CR1|=0xff;//推挽
    PC_CR2|=0xf0;//速度

其次,C6引脚要复用为定时器1的CH1通道

先DEBUG AND RUNINIG,之后会出现ST-LINK选项,点击后配置option bytes,按图配置,Alternate即为1.

3、定时器1CH1与CH3输出互补的PWM

代码如:

CLK_PCKENR1|= 0x80;//开启定时器1外设时钟
   TIM1_EGR = 0x01;   //重新初始化TIM1 
   TIM1_CR1 = 0x00;   //B7(0)可以直接写入 B65(00)边缘对齐模式B4(0)向上计数B3(0)计数器不停止发生更新事件
  TIM1_RCR = 0x00;  
  //PWM1,预装载
  TIM1_CCMR1=0x68;
 //
  TIM1_PSCRH =0x00;  //PWM的时钟 影响周期
  TIM1_PSCRL =0x00;  //PWM的时钟 影响周期
  TIM1_ARRH = 0x07;     //设定重装载值
  TIM1_ARRL = 0xD0;  //PWM的周期 07D0=2000,CLK=2M,f=1Kh

TIM1_CCER1=0x05; //CH1互补输出,高电平有效 
  TIM1_CCR1H = 0x03;
  TIM1_CCR1L = 0x00;  // 占空比值

TIM1_CR1 |= 0x01; //使能TIM1计数器
  TIM1_DTR = 0x50;        // Deadtime generator
  
  TIM1_BKR |= 0x80;       //刹车

注意CH3的C3引脚也要复用为CH1的CH1N通道。

STM8S103定时器1,定时器2多路PWM波输出相关推荐

  1. STM32F103-TIM3 4路PWM波输出

    STM32F1 定时器TIM3 4路PWM波输出 ,部分复用IO口 ,由于TIM3PWM输出引脚与JTAG 引脚冲突 所以要先禁用JTAG .才会有4路PWM输出. main.c /* 使用为正点原子 ...

  2. STM32一个定时器同时捕获4路PWM波

    问题的提出: 最近需要用航模遥控器控制遥控车,32单片机做主控,需要用到4个通道即需要捕获4路PWM波.如果用四个定时器来捕获四路PWM波,就太浪费资源了.由于STM32单片机的定时器资源有限,故设想 ...

  3. STM32: 利用高级定时器产生6路互补PWM波形输出在BLDC中H-PWM-L-ON驱动方式下驱动无刷电机

    原文网址:http://jingyan.eeboard.com/article/73847#/prettyPhoto%5Bpp_gal%5D/6/ http://jingyan.eeboard.com ...

  4. STM32CubeMX—PWM波输出实验

    定时器PWM波实验 实验说明 芯片:STM32F103RCT6 实验内容:使用定时器2的通道1输出PWM波控制LED灯的亮度. 实验操作 1.基础配置 1)sys中,选好调试方式,例如jtag-4pi ...

  5. linux模拟多路pwm,软件实现多路PWM的输出

    单片机应用于舞台灯光.民用照明的调光.电机转速.温度控制等众多领域时需要用到PWM占空比进行调节.市场上,集成了硬件PWM模块的单片机型号如PIC16F628A.STC12C2052等.使用硬件PWM ...

  6. STM32 重新理解GPIO配置以及配置PWM波输出

    最近做了个SD卡BOOTLOARDER程序.在测试过程中,想到可以利用板子的LED灯进行萤火虫灯的制作,通过BOOTLOARDER将APP文件下载到板子里面查看LED灯的闪烁.可能是因为太过自信,这么 ...

  7. STM32F7同一定时器多路输出PWM波通道之间相互影响问题

    --------------------------2020/8/12更新-------------------------------- 这次用Cube直接生成PWM控制代码,然后再RT-Threa ...

  8. 定时器PWM波输出频率问题

    平台:STM32 功能:多个定时器输出多路PWM波. 现象:相同ARR及CCR,输出PWM波频率不同. 详细:这类问题通常涉及到定时器时钟源的问题,STM32F4的TIM1与其他定时器不同,不在同一条 ...

  9. STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波

    文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.LPTIM2 Mode and Configuration 2.3.Parameter Settings ...

  10. 【定时器/中断/PWM】利用一个定时器实现一路PWM波的输出---点亮LED

    ------------------------------------------凑热闹的分割线------------------------------------------------ /* ...

最新文章

  1. python 配置文件对比_Python运维自动化之nginx配置文件对比操作示例
  2. 使用CEOP增强的Internet Explorer 8帮助保护您的孩子
  3. 五、操作系统——内存相关基础知识 和 进程运行的基本原理(详解)
  4. pandas-事例练习
  5. 内推熟人来自己公司一定要慎重
  6. iOS 11.3 显示:Apple ID 或将实现微信式扫码登陆
  7. C#语言开发环境的搭建
  8. Atitit 锁的不同层级 app锁 vm锁 os锁 硬件锁 目录 1. 在硬件层面,CPU提供了原子操作、关中断、锁内存总线的机制 1 1.1. test and set指令 1 1.2. 锁内
  9. c语言答案网站,c语言习题及答案
  10. Linux系统中安装软件的三种方法
  11. 2022 年第十二届 MathorCup 高校数学建模挑战赛C题解析
  12. python读取qq客户端消息_使用 Python 读取 QQ 消息
  13. aspx页面弹出窗口代码详细介绍
  14. linux基础命令(二)
  15. leetcode 506. Relative Ranks(python)
  16. 《高等统计物理学》5:非平衡态统计物理初步
  17. pdf文件怎么缩小兆数
  18. 计算机考研没有获奖没有科研难吗,大学期间没有什么获奖经历和科研成果, 对考研的影响大吗?...
  19. Android 新增外设Service添加供app使用
  20. win10神州网信V2022版本,登录微软账号

热门文章

  1. html数字自动滚动代码,HTML+JS实现滚动数字的时钟
  2. 对996的一些看法与个人价值实现
  3. 企业公众号如何申请开通模板消息功能?
  4. 密室逃脱全集(试试吧)
  5. 文章中如何将章节分页——段前分页
  6. 微信Android端如何安全降级
  7. 网络打印机怎么扫描到计算机,怎么用打印机扫描文件-富士施乐SC2020复印机设置网络扫描到计算机(SMB)...
  8. 旋转变换(二)欧拉角
  9. 华为云、百度、斗鱼的技术专家聚到一起在探讨什么?
  10. 中兴新支点操作系统上的快捷键