1 说明
2 代码
/*
TIM2_CH3 PWM
PD2 output
*/
#include
void CLK_init(void)
{
CLK_ICKR |= 0X01; //使能内部高速时钟 HSI
CLK_CKDIVR |= 0x08; //16M内部RC经2分频后系统时钟为8M
while(!(CLK_ICKR&0x02)); //HSI准备就绪
CLK_SWR=0xe1; //HSI为主时钟源
}
void Init_Tim2(void)
{
TIM2_CCMR3 |= 0X70; //设置定时器2三通道(PD2)输出比较三模式
TIM2_CCMR3 |= 0X04; //输出比较3预装载使能
TIM2_CCER2 |= 0x03; //通道3使能,低电平有效,配置为输出
//初始化时钟分频器为1,即计数器的时钟频率为Fmaster=8M/64=0.125MHZ
TIM2_PSCR = 0X06;
//初始化自动装载寄存器,决定PWM 方波的频率,Fpwm=0.125M/62500=2HZ
TIM2_ARRH = 62500/256;
TIM2_ARRL = 62500%256;
//初始化比较寄存器,决定PWM 方波的占空比:5000/10000 = 50%
TIM2_CCR3H = 31250/256;
TIM2_CCR3L = 31250%256;
// 启动计数;更新中断失能
TIM2_CR1 |= 0x81;
//TIM2_IER |= 0x00;
}
void Init_GPIO(void)
{
/*设置为推挽输出,PD2接了LED灯*/
PD_DDR |= 0X04; //设置PD2端口为输出模式
PD_CR1 |= 0X04; //设置PD2端口为推挽输出模式
PD_CR2 &= 0XFD;
PA_DDR |= 0X08; //设置PA3端口为输出模式
PA_CR1 |= 0X08; //设置PA3端口为推挽输出模式
PA_CR2 |= 0XF7;
}
void main(void)
{
CLK_init();
Init_GPIO();
Init_Tim2();
while (1);
}
关键字:STM8S 定时器 PWM
引用地址:
STM8S---定时器产生PWM(TIM2)
推荐阅读最新更新时间:2024-03-16 15:59
STM32L475使用PWM输出波形
本文描述了如何在搭载了 RT-Thread 操作系统的平台上使用 PWM 输出波形,包括 PWM 的应用、配置和驱动的添加等。并给出了在正点原子 STM32L475 pandora 开发板上验证的代码示例。 硬件平台简介 本文基于正点原子 STM32L475 pandora 开发板,给出了 PWM 的具体应用示例代码,由于 RT-Thread 上层应用 API 的通用性,因此这些代码不局限于具体的硬件平台,用户可以轻松将它移植到其它平台上。 STM32L475 pandora 是正点原子推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 80Mhz,该开发板具有丰富的板载资源,可以充分发挥 STM32L475
[单片机]
C51联盟 —— 外部中断+定时器中断
/*****************************************************/ void Int0Init(); //开启外部中断INTR0 void Timer1Init(); //定时器中断 5毫秒@12.000MHz /*****************************************************/ void main() { SEG = 0; Int0Init(); Timer1Init(); while(1); } /*****************************************************/ void FlowLED
[单片机]
STM32通用定时器的基本定时器功能实现灯闪烁
/*MAIN.C*/ /* Includes ------------------------------------------------------------------*/ #include stm32f10x.h #include misc.h /* Private function prototypes -----------------------------------------------*/ void RCC_Configuration(void); void NVIC_Configuration(void); void GPIO_Configuration(void); void TIM3_Conf
[单片机]
高耐压PWM三端开关电源
最简单的5V/5W开关电源实际电路如图所示。图中TOP210IC1)为三端PWM开关。IC1中含有PWM控制器,功率MOSFET和各种保护电路。这种5V/5W开关电源的成本比常用的线性电源成本低。
该电源交流输入电压范围为85"265V,当负载从额定负载的10%变化到100%,电源电压调整率和负载电流调整率可达+-5%。该电源还具有过压、超温保护和限流等功能。
TOP210的D脚为内部输出MOSFET的漏极,C脚为内部误差放大器和反馈电流输入脚,用来调整开关电源的占空比。S脚为内部MOSFET的源极,也是内部控制电路的公共端。
交流输入电压经VD1-VD4整流后的直流高压,加到变压器T1初
[应用]
MSP430单片机定时器学习笔记
msp430 定时器学习笔记 _BIS_SR(LPM2_bits + GIE) //进入LPM3低功耗模式和开总中断允许 中断 #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A(void) { } TACTL timerA控制寄存器 TAR timerA计数器 CCTL0 捕获/比较控制寄存器0 CCRO 捕获/比寄存器0(具有最高中断优先级别,单独使用一个中断向量) CCTL1 捕获/比较寄存器1 CCR1 捕获/比较寄存器1 CCTL2 捕获/比较寄存器2 CCR2 捕获/比较寄存器2 TAIV 中断向量寄存器 其中,定时器,CCR2,
[单片机]
STM32之高级定时器互补输出
#include stm32f10x.h /* RCC时钟配置 */ void RCC_config(void) { ErrorStatus HSEStartUpStatus; /* RCC寄存器设置为默认配置 */ RCC_DeInit(); /* 打开外部高速时钟 */ RCC_HSEConfig(RCC_HSE_ON); /* 等待外部高速时钟稳定 */ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) { /* 设置HCLK = SYSCLK */ RCC_HCLKConfig(RCC_SYSCLK_Div1); /*
[单片机]
STM8S003xx学习笔记(2):16位高级控制定时器(TIM1)
在单片机中定时器是一个非常重要的概念,这篇文章主要是对定时器TIM1做一个学习笔记。 1 综述 STM8S003xx只含有TIM1、TIM2、TIM4,其中TIM1是高级控制寄存器,TIM2和TIM4是通用定时器,这篇文章介绍的是TIM1。 在《数据手册》中我们可以知道,TIM1是一个应用广泛的高级定时器,由其互补输出,死区时间控制和居中对齐PWM功能。其应用领域扩展到电机控制、灯和半桥驱动。 ● 16位向上、向下、向上/向下自动重装载计数器,并有一个16位预分频器。 ● 四个独立的捕捉/比较通道(CAPCOM)配置为输入捕获、输出比较、PWM生成(边缘和居中对齐模式)和单脉冲输出模式 ● 同步模块的控制外部信号的计时
[单片机]
STM32定时器的几种用法
一、常用的定时功能 (1)基本、通用、高级定时器都有最基本的定时功能,定时功能用到的函数如下: HAL_ TI M_Base_Init 初始化定时,包括分频、 预装值等。 HAL_TIM_ConfigClockSource 选择定时器的 时钟 源 HAL_TIM_Base_Start_IT 开始定时器 HAL_TIM_PeriodElapsedCallb ac k 超时后的回调函数 (2)Cubemx的配置,不管什么定时器,都是这个配置,注意开启中断,计算好最终的定时器时钟 (3)代码片段 1 void MX_TIM12_Init(void) 2 { 3 TIM_ClockConfigTypeDef sClo
[单片机]