STM8S有许多定时器支持PWM输出,但在停止定时器后,IO口电平到底是多少呢?或高或低。
因此,为了确定PWM停止输出电平后其对应的值是多少,我们在停止PWM输出时需要对CCMR1寄存器进行设置。
例如,
TIM2_Cmd(DISABLE);
/*停止PWM后将电平拉为低电平*/
TIM2_ForcedOC1Config(TIM2_FORCEDACTION_INACTIVE);
GPIO_WriteLow(GPIOC, GPIO_PIN_5);
即可。
恢复时候需要重新将定时器初始化
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_16,uFreq);
TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, uFreq / 2, TIM2_OCPOLARITY_HIGH);
若直接调用
TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, uFreq / 2, TIM2_OCPOLARITY_HIGH);
是不会产生PWM输出的。
关键字:STM8S PWM输出 IO口 电平输出
引用地址:
STM8S PWM输出停止后 IO口电平输出
推荐阅读最新更新时间:2024-03-16 15:33
定时器的输出比较模式产生的PWM波的频率计算
定时器的输出比较模式产生的PWM波的频率计算的公式:72M/((2*(arr+1))*(psc+1) ) 比如设置: PWM_Init(1000-1,72-1); (PWM_Init(arr,psc);) 则每路PWM频率为500Hz 。 PWM_Init(arr,psc) { TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBaseStructure.TIM_Prescaler =psc; }
[单片机]
使用STM8S自带BootLoader_1
本文将详细记载怎么使用STM8S自带BootLoader实现程序更新。 准备工作: 1. ST支持文档 UM0560(说明BootLoader怎么用) 2. ST官方下载软件 STMFlashLoader Demo.exe 3. IAR Embedded Workbench 、ST Visual Programmer 4. 2块STM8S105K6,用来实现更新操作。 实践操作: 1. 使用STVP - OPTION BYTE - ROP - Read Out Protection OFF STVP - OPTION BYTE - BOOTLOADER ENABLE - BootLoader Enable 本
[单片机]
STM8S关于TIM最高频率设置的坑
前言:STM8S003配置TIM4频率设置在100kHz,即10us中断一次 问题:想要配置100k,但是顶死了60k,这么配置都上不去! 疑惑:库函数和寄存器到底有多大差别? 正文: 1 配置TIM4基本定时器(计数器只有256个) // TIM4_DeInit(); TIM4_TimeBaseInit(TIM4_PRESCALER_16,9 ); //10us 16M/16/(9+1)=100kHz // TIM4_ClearFlag(TIM4_FLAG_UPDATE); //清除标志位 TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE); //使能更新UPDATE中断
[单片机]
STM32f10xxx 之 GPIO口配置
背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了此文章。 正文 先说说GPIO口speed的问题,这个一般是用来定义GPIO口上升沿或者下降沿的时间,频率越高,上升沿下降沿时间越短,但是其噪音也就越大,因此,如果没有特别的需求,该值应该不要配置太高。在技术手册里,其给了3个速度选择,库函数的相应表现形式如下: /** * @brief Output Maximum frequency selection */typedef enum{ GPIO_Speed_10MHz =
[单片机]
1. avr定时器/计数器0 --TC0 --CTC模式输出PWM
CTC:比较匹配时清零计数器模式,。当计数器TCNT0的数值等于比较寄存器OCR0时计数器TCNT0自动清零。OCR0定义了计数器的最大(TOP)值,这个模式使得用户可以很容易地控制比较匹配输出的频率。T/C0的比较输出脚为OC0(PB3),PB口的第三脚,在此模式下可以在OC0上输出PWM控制外部设备。 例如:在OC0脚上输出20HZ的方波信号,方波的周期时间为T=1/20HZ=0.05秒=50ms,半个周期为25ms,系统采用8MHZ晶振,1024分频,时钟计数频率为8000000/1024=7812.5HZ,每个时钟脉冲时间为1/7812.5=0.128ms, 定时25ms的计数值为25ms/0.128ms=195,将195
[单片机]
AVR单片机I/O口使用注意事项
1. 先正确设置DDRx方向寄存器,再进行I/O口的读写操作。 2. I/O口复位后的初始状态全部为输入工作方式,内部上拉电阻无效,外部引脚呈现三态高阻输入状态。 3. 当I/O口工作在输入方式时,且要读取外部引脚上的电平时,应读取PINxn的值,而不是PORTxn的值。 4. 当I/O工作在输入方式时,要根据实际情况使用或不使用内部的上拉电阻。 5. 一旦将I/O口的工作方式由输出设置成输入方式后,必须等待1个时钟周期后才能正确读到外部引脚PINxn的值。
[单片机]
单片机定时/计数器设计输出PWM
一、定时/计数器PWM设计要点 根据PWM是利用微处理器的数字输出来对模拟电路进行控制的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点: 1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。 2.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决定了占空比的大小。PWM频率的计算公式为: 3.然后根据需要PWM的频率范围确定
[单片机]
51单片机IO口组成与功能简介
1、 P1口 准双向口,各位可分开使用,某位作输入线时,该位锁存器必须为‘1’;作为输入时,可以被任何TTL电路和MOS电路所驱动,由于内部有提升电路,也可以被集电极开路或漏极开路的电路所驱动。 P1口输出时能驱动4个LSTTL负载(100uA定义为一个TTL负载的输入电流)。 P1口完全属用户使用 2、 P3口 多功能口:第一功能-I/O准双向口,与P1口相同。 第二功能:RXD、TXD、INT0、INT1、T0、T1、/WR、/RD。 某位作为第二功能输入/输出线时,该位锁存器必须保持‘1’,是输出场效应管的状态由第二功能输出决定。 3、 P2口 两个功能:1)在单片机系统无外部扩展时,作为通用I/O口;同P
[单片机]