历史上的今天
今天是:2025年04月09日(星期三)
2019年04月09日 | STM32 TIM1 F1 四通道完全重映射PWM 配置
2019-04-09 来源:eefocus
void TIM1_PWM_Init(u16 arr,u16 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);//
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; //TIM1_CH3
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; //TIM1_CH4
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //TIM1_CH2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_ResetBits(GPIOE,GPIO_Pin_9);
TIM_TimeBaseStructure.TIM_Period = arr;
TIM_TimeBaseStructure.TIM_Prescaler =psc;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM1, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC2Init(TIM1, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC3Init(TIM1, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC4Init(TIM1, &TIM_OCInitStructure);
TIM_CtrlPWMOutputs(TIM1,ENABLE);
TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);
TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);
TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable); //
TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable); //
TIM_ARRPreloadConfig(TIM1, ENABLE); //
TIM_Cmd(TIM1, ENABLE); //
}
下一篇:STM32八种输入输出模式详解
史海拾趣
|
最近小弟在构思一个系统遇到了一些麻烦的问题,忘知者赐教。 系统有能耗要求,整个mcu处理单元(包括mcu外围)平均电流要限制在50ma以内。mcu目前占时还没有定下来,选择对象是stm32系列,atmel的xmega系列和avr32系列。系统需要大量的高速缓存, ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 屏幕越大待机时间越短 已成消费者最大诟病 手机电池标准统一咋就这么难 中国消费者协会日前发布2009年全国手机消费者满意指数测评情况显示,消费者对手机电池待机时间短最为不满。 如果说待 ...… 查看全部问答> |
|
小弟做项目时用到DS18B20,随盘资料的例程有一处我总觉得有问题,大家帮我看看是不是。 unsigned char ID[5][8]; //ID[5][8]为检索到的地址 unsigned char TEMP_NUMBER; //温度传感器数量 unsigned int TEMP[5]; //温 ...… 查看全部问答> |
|
在银行自动提款时,都有语音提示,前几天农行的帅哥还把提示音换成了TOM猫的搞笑声音,我想问一下怎样将人声转换成c代码,然后利用DA输出至喇叭,实现语音提示。可是在网上没有找到转换软件。网上有蜂鸣器的代码转换软件,(http://download3.pudn. ...… 查看全部问答> |
|
为什么发送的时候是判断UDREn是否为1,而不是判断TXCn是否为1呢?书上说只要发送移位寄存器和发送缓冲寄存器为空就会置位TXCn的啊,初始化后这两个寄存器难道不是空吗?不解啊,刚学,很多不懂的地方… 查看全部问答> |
|
新版BBB LCD cape,支持1024x600的7寸LVDS屏 本帖最后由 chenzhufly 于 2014-8-24 10:06 编辑 最近做了个新版的BBB LCD cape,支持1024x600的7寸LVDS屏,上几张图片先。 目前基本功能是完成了,但是触摸屏还有点问题,可以移动鼠标箭头,但是无法进行双击,也不知道什么地方出问题了,有知 ...… 查看全部问答> |




