这里我使用timer1,gpio PC3来举例:
GPIO_Init(GPIOC, GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST);
TIM1_DeInit();
TIM1_TimeBaseInit(0x01, TIM1_COUNTERMODE_UP, 10000, 0x00);
TIM1_OC3Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE,TIM1_OUTPUTNSTATE_DISABLE, 5000, TIM1_OCPOLARITY_LOW,TIM1_OCNPOLARITY_LOW, TIM1_OCIDLESTATE_RESET,TIM1_OCNIDLESTATE_RESET);//50%占空比
TIM1_CCxCmd(TIM1_CHANNEL_3, ENABLE);
TIM1_OC3PreloadConfig(ENABLE);
TIM1_CtrlPWMOutputs(ENABLE);
TIM1_Cmd(ENABLE);
关键字:STM8S003F3 PWM gpio
引用地址:
STM8S003F3 PWM的使用
推荐阅读最新更新时间:2024-11-17 23:24
最简单的GPIO驱动的智慧
干货 | 最简单IO驱动的智慧 从单片机到ARM7、ARM9、Cortex-A8,从uC/OS到WinCE、Linux,GPIO驱动都是最简单、最易编写的驱动。但看似简单、毫无技术含量的驱动,其是否完整?是否规范?是否安全? 典型案例 本节将选取两例典型案例,从反、正两个角度进行对比。 反方案例 以某一源码中XXX驱动为例,截取XXX_IOControl部分的代码,如程序清单1所示;请留意代码突出显示部分。 程序清单1 从反方案例,实现GPIO 电平 状态的读或写的功能仅需要几行代码,非常简单。 正方案例 如程序清单2所示,代码截取自ZLG某核心板GPIO驱动,请留意代码中突出显示部分
[单片机]
STM32之中断与事件一个使用GPIO作为外部中断的示例
1.GPIO 的正确设置 GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOD clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); /* Configure PD.03, PC.04, as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPIO_InitStru
[单片机]
STM32 PWM简介及呼吸灯实验
1.PWM简介 脉冲宽度调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单来说,就是对脉冲宽度的控制,原理图如下: 当CNT CCRx时,输出0,反之,则输出1。因此可以输出如上的PWM示意图。当CNT达到CCRx时,重新归零,然后再向上计数,依次循环。通过改变CCRx的值,就可以改变PWM的输出占空比,改变ARR的值,就可以改变PWM输出的频率,这就是PWM输出的原理。 这里我们使用STM32F4的TIM14的CH1产生一路PWM输出。 值得一提的是控制PWM的三个寄存器:捕获/比较模式寄存器(TIMx_CCMR1/2),捕获/比较使能寄存器(TIMx_CCER),捕获/比较寄存器(TIMx
[单片机]
LPC2478 GPIO 输出控制
void main(){ //将P3.25 P3.28 P3.26 P3.29配置成输出模式,默认为上拉输出 //初始化 PINSEL7&=(~(3 18)); FIO3DIR |= 1 25; //P3.25/OUT DIR PINSEL7&=(~(3 24)); FIO3DIR |= 1 28; //P3.28/OUT DIR PINSEL7&=(~(3 20)); FIO3DIR |= 1 26; //P3.26/OUT ENA PINSEL7&=(~(3 26)); FIO3DIR |= 1 29; //P3.29/OUT ENA //输出高低电平 FIO3CLR |= 1 26; FIO3SET |=
[单片机]
stm32引脚速度GPIO_Speed的区别
首先GPIO最基本、最简单的作用是我们可以通过编程的方式让它作输入或者输出,而输入/输出的形式为高低电平(通常0V为低电平,3.3V为高电平)。 要让GPIO作输入或者输出,首先就需要对IO口相关的寄存器进行配置。而寄存器是中央处理器内的组成部分,寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。 因此对IO口的初始化就是向相关寄存器里面写不同的值,从而确定使用哪一个IO口(IO口标号)、以及IO口工作模式(输入还是输出)、输出速度等参数。 在经过初始化之后就可以正常使用IO口了,比如如果IO口设置成了某个输入模式,就可以通过调用相关函数或者直接操作相关寄存器去得到IO口的电平是高电平还是低电平。 -
[单片机]
MSP430f2619学习--PWM
思路: 利用定时器B的比较功能输出PWM波形; 一、定时器B 定时器B的特点: 1)异步16位定时/计数器; 2)4种工作模式; 3)4个可选长度 4)3或7个可配置的捕获/比较寄存器; 定时器的4种工作方式分别为,停止计数模式,增计数模式,连续计数模式和增减计数模式; 要输出PWM波形,需要配置定时器B的捕获/比较部件工作在比较模式,寄存器TBCCTLx的CAP位配置为0即可; TBCCTLx寄存器定义: 定时器的每一个捕获/比较部件都拥有一组输出单元,这个输出单元是用来产生输出信号的,例如PWM波等,输出信号的引脚通常在数据手册中都会表明 每个输出单元都有8种模式: 1)电平输出,由TBCCTLx寄存器
[单片机]
STM32的TIM1互补PWM输出
芯片为STM32F412VETx,使用的是高级定时器TIM1的PWM互补PWM输出,看一下STM32CubeMX配置, 再看时钟的配置,TIM1用的是APB2的时钟,。 再看引脚的配置 产生的PWM频率为:Fpwm = 96MHz / ((95+1)(9999+1)) =100Hz,占空比为50% 然后生成代码,看下代码中的FMX_TIM1_Init函数初始化 /* TIM1 init function */ static void FMX_TIM1_Init(void) { TIM_ClockConfigTypeDef sClockSourceConfig; TIM_MasterConfigType
[单片机]
一种三相电压型PWM整流器主电路图
三相电压型PWM整流器主电路具有很快地响应和更好的输入电流波形,稳态工作时,输出直流电压不变,开关管按正弦规律脉宽调制,整流器交流测的输出电压和逆变器相同。适当控制整流器输出电压的幅值和相位,就可以获得所需大小和相位的输入电流。三相电压型 PWM 整流器主电路图如下:
[电源管理]