stm8s103 PWM的设置不难,但是很多人不注意选项字节这个问题,PWM是IO口的第二功能,要用ST Visual Programmer 修改选项字节。

只需要修改AFR0的功能就可以了

其中初始化代码如下

void TIM1_PWM_Init(unsigned int TIM1_CH1_Period,unsigned int TIM1_Pulse)
{
    PC_DDR = 0xF0;             // 配置PD端口的方向寄存器PD3输出
    PC_CR1 = 0xF0;             // 设置PD3为推挽输出
#if 1
    TIM1_SMCR=0X00;                        //从模式功能 代设定
    TIM1_ETR=0X00;                        //外部触发功能代设定
    TIM1_SR1=0X00;                        //中断请求寄存器,清零
    TIM1_SR2=0X00;                        //捕获标记寄存器
    TIM1_BKR = 0X20;
    TIM1_PSCRH=0;                    //预分频器高8位
    TIM1_PSCRL=15;                    //预分频器低8位  15999+1分频   1ms
    TIM1_ARRH=(unsigned char)(TIM1_CH1_Period>>8);                        //自动装载寄存器高
    TIM1_ARRL=((unsigned char)TIM1_CH1_Period);
    TIM1_CNTRH=0X00;                    //计数器清零
    TIM1_CNTRL=0X00;  
    TIM1_CCER1 |=  BIT0;
    TIM1_CCMR1 |= 0x08;
    TIM1_CCMR1 |= 0X60;
    TIM1_CCR1H = 0;
    TIM1_CCR1L = 200;
    
    TIM1_CCER1 |=  BIT4;
    TIM1_CCMR2 |= 0x08;
    TIM1_CCMR2 |= 0X60;
    TIM1_CCR2H = 0;
    TIM1_CCR2L = 200;
    
    TIM1_BKR |= 0x80;         //设置刹车寄存器
    TIM1_IER = 0x00;         //允许更新中断
    TIM1_CR1 = 0x01;         //计数器使能,开始计数
#endif
}

void SetTIM1_PWM_CH1_Cycle(unsigned int TIM1_Pulse)
{
    TIM1_CCR1H = (unsigned char)(TIM1_Pulse>>8);    
    TIM1_CCR1L = ((unsigned char)TIM1_Pulse);
}

stm8s103 PWM的更多相关文章

  1. STM32之PWM君

    PWM..英语好的人估计又知道这三个大写字母代表哪三个英语单词了.小弟不才,就说中文意思好了:脉冲宽度调制,玩过飞思卡尔的人估计对PWM非常的不陌生吧.电机驱动需要PWM,控制舵机的转向需要PWM,总 ...

  2. [nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM

    一.PWM概述: PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形. PWM 的几个基本概念: 1) 占空比:占空比是指 ...

  3. Windows on Device 项目实践 1 - PWM调光灯制作

    在前一篇文章<Wintel物联网平台-Windows IoT新手入门指南>中,我们讲解了Windows on Device硬件准备和软件开发环境的搭建,以及Hello Blinky项目的演 ...

  4. 用Arduino剖析PWM脉宽调制

    PWM(Pulse Width Modulation)简介 PWM,也就是脉冲宽度调制,用于将一段信号编码为脉冲信号,也就是方波信号.多用于在数字电路中驱动负载随时间变化的电子元件,如LED,电机等. ...

  5. Arduino学习经验(一)之解决舵机库和pwm输出冲突

    一.前言 最近在公司学习Arduino uno ,用它实现小车超声波避障功能.实现的功能很简单,就是在小车前方挂一个超声波模块,当碰到障碍物时,会通过舵机进行摆头,判断两边的距离,进行左右转弯.但是碰 ...

  6. 驱动实现led,pwm和中断基础知识

    2015.4.8星期三 晴天 今天老师讲的内容是内核编写led和pwm驱动,实现花样灯和放歌的功能.理解应用和驱动的对接,最后自己实现了在放歌的时候根据歌曲的节奏亮灭一个小灯,应为两个独立的驱动都已经 ...

  7. STM32中的PWM的频率和占空比的设置

    转于http://blog.csdn.net/liming0931/article/details/8491468 下面的这个是stm32的定时器逻辑图,上来有助于理解:   TIM3的ARR寄存器和 ...

  8. PWM波控制舵机总结

    文章转自:http://www.geek-workshop.com/thread-70-1-1.html 一.关于舵机: 舵机(英文叫Servo):它由直流电机.减速齿轮组.传感器和控制电路组成的一套 ...

  9. STM32之PWM波形输出配置总结

    一.   TIMER分类: STM32中一共有11个定时器,其中TIM6.TIM7是基本定时器:TIM2.TIM3.TIM4.TIM5是通用定时器:TIM1和TIM8是高级定时器,以及2个看门狗定时器 ...

随机推荐

  1. DTP激活时报Overlapping

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. ShareSDK 集成 Google+ 登录 400. Error:redirect_uri_mismatch 和 Error Domain=ShareSDKErrorDomain Code=204

    最近在集成ShareSDK中 Google+ 登录授权时候 出现了如下几个问题 1.    400.  Error:redirect_uri_mismatch 出现这种情况, redirectUri应 ...

  3. css实现div的高度填满剩余空间

    css实现div的高度填满剩余空间 .top{ width: 100%; height: 70px;} .bottom{background-color: #cc85d9;width: 100%;po ...

  4. kegg-kass注释--转载

    在注释KEGG的时候,一直用到kaas,具体kaas是个什么东东,简单的总结一下吧.     KEGG是由日本人搞的一个代谢图,收录基因和基因组的数据库,数据库可以分为 3大部分,基因数据库, 化学分 ...

  5. a 锚点跳转滑动效果

    点击a链接时,跳转到相应id的位置处,有一个滑动效果. <a href="#my">我是跳转到div</a><div id="my" ...

  6. P​D​F​二​次​开​发​_​i​S​t​y​l​e​P​D​F​表​单​域​的​填​充

    wo讲到PDF表单,我们首先需要认识Adobe定义的PDF表单有哪些.以下是我从网上搜索到的简单介绍: PDF 表单简介 PDF 是可移植文档格式(Portable Document Format)的 ...

  7. phpstorm 设置Utf8编码

    点击file 再点击setting 找到file Encoding gbk改成utf-8就ok了

  8. 微软亚洲实验室一篇超过人类识别率的论文:Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification ImageNet Classification

    在该文章的两大创新点:一个是PReLU,一个是权值初始化的方法.下面我们分别一一来看. PReLU(paramter ReLU) 所谓的PRelu,即在 ReLU激活函数的基础上加入了一个参数,看一个 ...

  9. Java 中如何原样输出转义符号

    Java 中的转义字符有好几种,常见的有: 八进制转义字符,格式:\ + 1到3位八进制数字,如\1, \20,范围为 \0 ~ \377,即最大值为255. Unicode转义字符,格式:\u + ...

  10. Freemaker 自定义函数

    定义格式如下: <#function name param1 param2 ... paramN> ... <#return returnValue> ... </#fu ...